Method/Sub 在 Raku 中绑定

Method/Sub Binding In Raku

我想知道是否有办法将方法 and/or 绑定到 Raku 中的另一个 method/sub 名称。我已经了解了如何将变量绑定到 method/sub,但这并不是我想要的。我知道如何在 Perl 5 中做到这一点:

sub sub1 {
  print "sub1!\n";
}

*sub2 = \&sub1;

sub1(); # sub1!
sub2(); # sub1!

实际上,您对普通变量所做的与对子变量所做的几乎完全相同。

sub sub1 { say "sub1!" }

my &sub2 = &sub1;

sub1; # sub1!
sub2; # sub1!

你不需要绑定,实际上,因为 subs 没有容器化并且 &-sigiled 变量没有像 @% 这样的特殊分配处理 -符号变量。 (如果你做 .WHICH.WHERE 你可以看到它们指向内存中的同一个地方)。

@user0721090601 已经给出了订阅的答案。对方法做同样的事情稍微复杂一些。幸运的是,生态系统中有一个模块可以让您更轻松地做到这一点:Method::Also。这允许你说:

use Method::Also;
# ...
method foo() is also<bar bazzy> {

然后你也可以调用.bar.bazzy方法,得到与调用.foo方法相同的结果。