Don't allow to reassign, but content is editable

tcak tcak at gmail.com
Wed Apr 7 12:28:25 UTC 2021


In javascript, with "const" keyword, you assign an object to a 
variable. Later, you cannot assign anything else to that 
variable, but content of it still can be changed. No matter by 
using "immutable" or "const", I cannot imitate that. Is there a 
way to do this without an overhead (like calling a function to 
create a pointer)?

Example:

class Test
{
     public int[] a;

     public this(){ a = new int[5]; }

     @property auto b(){ return a.ptr; }  // this is a 
possibility, but results with overhead of calling. Also, b is not 
an array anymore, just int*.
}

I want this to be possible:
test.a[3] = 7;

But this wouldn't be allowed:
test.a = new int[14];



More information about the Digitalmars-d-learn mailing list