Immutability vs reference types
Ali Çehreli
acehreli at yahoo.com
Tue May 28 14:23:01 PDT 2013
On 05/27/2013 05:24 PM, Francois Chabot wrote:
> If with immutable(Type)[], I can have a re-assignable reference
> to arrays of immutable data, I really should be able to have some
> form of syntactical equivalent for single instances. But there
> just doesn't seem to be one. Immutability for reference types
> seem to always apply both to the referenced data as well as the
> reference itself no matter what.
I agree.
I've been puzzled by this recently as well:
class C
{}
void main()
{
const(C) c;
c = new const(C); // <-- compilation error
}
That is silly because not c, but what it refers to is const. It is
supposed to be "turtles all the way down", not "turtles all the way up." :)
Somehow this issue feels even more strange on 'const' because 'const'
doesn't bring any requirement on the data anyway. It only says that "I
shall not mutate". It should be fine with everybody... The variable
should be able to go ahead and not mutate something else. :)
Ali
More information about the Digitalmars-d-learn
mailing list