特质是否仅适用于对象?

再次在这个问题的尾部,我试图will用这个(打高尔夫球的)代码使特征起作用:

sub show-value( $a-var ) {
    say "Value of {$a-var.^name} is ", $a-var.gist;
}

sub do-stuff () {
    ENTER { say "Going in"; }
    our $bar will enter { show-value($_) };
    $bar = "baz";
    LEAVE { say "Leaving"; }
}

do-stuff();

这只是打印“进入”。如果您在全局范围内执行此操作,则它(不会)以相同的方式工作。请注意,这几乎是文档示例的直接实现。

回答

你还没有注意到你的乐堂版本。听起来像是今年引入的错误。

使用 glot.io 运行相同的代码:

v2021.02.1
Going in
Value of Any is (Any)
Leaving

  • FWIW,我认为没有错误。对“will”特性的实际作用存在严重的误解。

以上是特质是否仅适用于对象?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>