相关疑难解决方法(0)

这是Perl 6 Hash还是Block?

这有点意外的行为,可能会咬人初学者.首先,这是打算吗?其次,Perl 6使用什么来猜测要创建哪个对象?它是否开始认为它是Block或Hash并稍后更改,还是最终决定?

你可以用大括号和胖箭头构造一个哈希:

my $color-name-to-rgb = {
    'red' => 'FF0000',
    };

put $color-name-to-rgb.^name;  # Hash
Run Code Online (Sandbox Code Playgroud)

使用另一个Pair符号也会创建哈希.

my $color-name-to-rgb = {
    :red('FF0000'),
    };
Run Code Online (Sandbox Code Playgroud)

但是,如果没有胖箭,我会得到一个Block:

my $color-name-to-rgb = {
    'red', 'FF0000',
    };

put $color-name-to-rgb.^name;  # Block
Run Code Online (Sandbox Code Playgroud)

哈希文档仅提到使用$_大括号内创建一个.

还有其他方法来定义哈希,但我问的是这个特定的语法,而不是寻找我已经知道的解决方法.

$ perl6 -v
This is Rakudo version 2017.04.3 built on MoarVM version 2017.04-53-g66c6dda
implementing Perl 6.c.
Run Code Online (Sandbox Code Playgroud)

hash block perl6 raku

12
推荐指数
2
解决办法
533
查看次数

这两个函数调用约定有什么区别?

可以通过以下几种方式调用函数:

say(1, 2, 3) # 123
say: 1, 2, 3 # (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

后者似乎通过了Positional,但除此之外,我不知道他们有何不同.是否有任何重要的差异需要知道?你会使用哪种类型的情况?

syntax function perl6 raku

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

标签 统计

perl6 ×2

raku ×2

block ×1

function ×1

hash ×1

syntax ×1