Как изменить матрицу в раку-ланге - PullRequest
5 голосов
/ 12 января 2020

Когда я пытаюсь изменить матрицу в раку. Я получил ошибку:

my @matrix = ^100 .rotor(10);
@matrix[1;*] = 1 xx 10
Cannot modify an immutable Int (10)
      in block <unit> at <unknown file> line 1
@matrix[1;1] = 3
Cannot modify an immutable List ((10 11 12 13 14 15 1...)
      in block <unit> at <unknown file> line 1

Почему все эти значения являются неизменяемыми?

1 Ответ

5 голосов
/ 12 января 2020

Ну, списки всегда неизменны. Вы можете изменить их контейнер, но не самих себя. rotor создает списки, поэтому после их создания вы не можете их изменять. Не знаю точно, что вы хотите сделать здесь, но, глядя на ошибки здесь, я бы сказал, что вам нужно превратить эти неизменяемые списки в изменяемые Array s:

my @matrix = ^100 .rotor(10).map: *.Array;
@matrix[1;*] = 1 xx 10;
@matrix[1;1] = 3;
...