On 10/17/2016 11:10 AM, 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

What version is your compiler? My version is DMD64 D Compiler v2.072.0-b2.

Trying the code with a recent compiler produces three compilation errors for the following three lines

    immSlice ~= 3;
    immSlice[0] = 3;
    immSlice.length = 1;

Error: cannot modify immutable expression immSlice
Error: cannot modify immutable expression immSlice[0]
Error: cannot modify immutable expression immSlice

Ali

Reply via email to