5
是否可以防止在D2中非傳遞變量的重新分配?是否可以防止在D2中非傳遞變量的重新分配?
例如:
final int[] a = [0];
a[0] = 1; // OK.
a = []; // ERROR.
我只看到const
和immutable
這裏: http://www.dlang.org/const3.html
是否可以防止在D2中非傳遞變量的重新分配?是否可以防止在D2中非傳遞變量的重新分配?
例如:
final int[] a = [0];
a[0] = 1; // OK.
a = []; // ERROR.
我只看到const
和immutable
這裏: http://www.dlang.org/const3.html
號你有什麼是const
和immutable
,他們傳遞的(他們真的不會,如果工作他們沒有)。你可以做
const(int)[] a = [0];
a[0] = 1; // ERROR.
a = []; // OK;
但不是你要找的。
當const
和immutable
是可傳遞的時,編譯器可以提供更好的保證。另外,immutable
對於線程(其存在的主要原因之一)確實沒有任何用處,除非它是可傳遞的,並且因爲immutable
必須能夠爲const
,const
的任何內容也必須是傳遞性的。因此,它們不能用於簡單地防止變量重新分配。這樣做的語言中沒有其他的結構。