是否有可能在D2中防止不可传递地重新分配变量?
例如:
final int[] a = [0];
a[0] = 1; // OK.
a = []; // ERROR.
Run Code Online (Sandbox Code Playgroud)
我只看到const,并immutable在这里:
http://www.dlang.org/const3.html
号你有什么是const和immutable,他们是传递(他们,如果他们不是真的会无法正常工作).你可以做
const(int)[] a = [0];
a[0] = 1; // ERROR.
a = []; // OK;
Run Code Online (Sandbox Code Playgroud)
但不是你想要的.
编译器可以给时获得更好的保障const和immutable是传递的.而且,immutable除非它是可传递的,并且因为任何immutable必须能够传递的东西,所以它实际上对于线程(其存在的主要原因之一)没有任何用处const,也const必须是传递性的.因此,必要时,它们不能用于简单地防止可变重新分配.并且在语言中没有其他构造用于这样做.