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