相关疑难解决方法(0)

禁止无重复变量重新绑定是否有目的或好处?

在试图更好地理解无格变量以及它们与$sigiled变量的区别时,我发现,与$sigiled变量不同,sigilless变量在初始化后无法反弹:

my $a = 42;
my $b := $a;
$b := 42;       # No exception generated

my \c := $a;
c := 42;        # OUTPUT: «Cannot use bind operator with this left-hand side?»
Run Code Online (Sandbox Code Playgroud)

这是设计的吗?如果是这样,当$不禁止这些变量被禁止时,是否有目的或好处禁止无重复变量重新绑定?

perl6 raku

10
推荐指数
2
解决办法
218
查看次数

无用的哈希编写器,还是不能修改不可变的哈希?

这段代码:

constant %what = { doesn't => 'change' }; 
%what = { will => "change" } 
Run Code Online (Sandbox Code Playgroud)

应该说“不能修改不可变的哈希”。但是,它说:

Potential difficulties:
Useless use of hash composer on right side of hash assignment; did you mean := instead?
Run Code Online (Sandbox Code Playgroud)

Positionals有几乎相同的问题,但错误有所不同。在这种情况下,它不能修改不可变的,而只能修改一个Str:

constant @what = <does not change>;
@what = <does change> # Cannot modify an immutable Str (does)
Run Code Online (Sandbox Code Playgroud)

标量工作正常。这是LTA错误消息的情况,还是我缺少的一些容器魔术在起作用?

perl6

4
推荐指数
1
解决办法
100
查看次数

标签 统计

perl6 ×2

raku ×1