raku - 如何修改raku-lang中的矩阵

标签 raku

当我尝试修改 raku 中的矩阵时。 我收到错误:

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

为什么所有这些值都是不可变的值?

最佳答案

嗯,lists总是不可变的。您可以修改它们的容器,但不能修改它们本身。 rotor创建列表,因此一旦创建列表,您就无法修改它们。 不知道你到底想在这里做什么,但是看看这里的错误,我想说你需要将这些不可变列表转换为可变 Arrays:

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

关于raku - 如何修改raku-lang中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701812/

相关文章:

raku - 有没有类似于Python中的Counter的内置方法?

testing - 如何测试方法是否在 Perl 6 类中定义?

raku - Perl 6 Cro 的 stub 不运行 : HTTP/2 is requested, 但不支持 ALPN

signals - 如何在 Perl 6 中向进程 ID 发送信号?

module - 模块内的相对路径

raku - 访问 Perl6 中的最后一个元素

memory - 显示数据结构使用了多少内存

raku - 如何将变量插入 Perl 6 正则表达式字符类?

raku - 如何在 Raku 中删除多方法

perl - "perldoc -f"用于 Perl6/Rakudo