我在理解 D 中的数组标识时遇到问题。
Object s = null; // or new Object
auto a = [s];
auto b = [s];
writeln(a is b); // > false
writeln(a == b); // > true
这打印false,然后true。我对 没有问题==,但在D2 ref中指出
对于静态和动态数组,标识定义为引用相同的数组元素和相同数量的元素。
这与我所经历的行为相矛盾。a并且b两者都有一个元素 which is s,所以它们应该是相同的。我误解了什么吗?
编辑:我错误地认为相同的数组元素意味着它们在 D 中比较相等is,哪种模型的身份比较。