Programming in D by Ali Çehreli

vino via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Oct 17 23:48:37 PDT 2016


On Monday, 17 October 2016 at 18:20:00 UTC, cym13 wrote:
> On Monday, 17 October 2016 at 18:10:01 UTC, vino wrote:
>> Hi All,
>>
>>  As per the book named in the subject it states as below,so 
>> can some one guide me what is wrong in the below code nor 
>> correct if my understanding is wrong.
>>
>> Page 154
>> immutable(int[]) specifies that neither the slice nor its 
>> elements can be modified.
>>
>> So which means that a element or a slice of any array can be 
>> modified, but the below example code is not working.
>>
>> import std.stdio;
>> void main() {
>> immutable(int[]) immSlice = [ 1, 2 ];
>> immSlice ~= 3;
>> immSlice[0] = 3; // Error's out at this point
>> immSlice.length = 1;
>> writeln(immSlice);
>> }
>> From,
>> Vino.B
>
> I don't see what you don't understand, you said it yourself: 
> "neither the slice nor its elements can be modified". So you 
> can't modify the elements  of an immutable array. immSlice is 
> an immutable array of which you are trying to modify an element.

Hi,

  Thank you for your reply, can you address why the below code is 
not working

import std.stdio;

void main() {
int[] Array = [ 1, 2, 3, 4 ];
immutable(int[]) immSlice = Array[ 0 .. 2 ];
writeln("1st : ", immSlice);
immSlice ~= 3;
writeln("2nd : ", immSlice);
immSlice[0] = 3;
writeln("3rd : ", immSlice);
immSlice.length = 1;
writeln("4th : ",immSlice);
}



More information about the Digitalmars-d-learn mailing list