小编FyF*_*AIR的帖子

Raku 签名 (Array @r) 不是 (Array:D)?

我似乎无法弄清楚我在探索语法时发现的这个 Raku 错误消息......


Cannot resolve caller report(Array:D); none of these signatures matches:
(Array @r)
(Match $r)
Run Code Online (Sandbox Code Playgroud)

那么数组不是数组?!这是如何运作的以及我如何找出原因?这是完整的程序和输出。

#!/usr/bin/env perl6
use v6;
grammar Integers {
    rule TOP      { ^ .*? <targets> .* $  }
    rule targets  { <integer>+ % ',' }
    token integer { \d+ }
}

multi sub report(Array @r) { say @r.raku }
multi sub report(Match $r) { say $r.raku }

sub MAIN() {
    my $result = Integers.parse(' a 1234 ');
    report($result);
    report(%$result{'targets'});
    report(%$result{'targets'}{'integer'});
}
#`( output:
Match.new(:orig(" a …
Run Code Online (Sandbox Code Playgroud)

polymorphism raku

9
推荐指数
1
解决办法
126
查看次数

Raku pop() 执行顺序

Raku的执行顺序不是一般从左到右吗?

my @a = my @b = [9 , 3];
say (@a[1] - @a[0]) == (@b[1] R- @b[0]); # False {as expected}
say (@a.pop() - @a.pop()) == (@b.pop() R- @b.pop()); # True {Huh?!?}
Run Code Online (Sandbox Code Playgroud)

这是我在 Rakudo(tm) v2020.12 和 2021.07 中得到的。前两行有道理,但第三行我无法理解。

raku

8
推荐指数
3
解决办法
435
查看次数

标签 统计

raku ×2

polymorphism ×1