Function Raku中的方法/子绑定

Function Raku中的方法/子绑定,function,methods,binding,alias,raku,Function,Methods,Binding,Alias,Raku,我想知道是否有办法将一个方法和/或子方法绑定到Raku中的另一个方法/子名称。我已经看到了如何将变量绑定到方法/子方法,但这并不是我想要的。我知道如何在Perl 5中实现这一点: subsub1{ 打印“sub1!\n”; } *sub2=\&sub1; sub1();#sub1! sub2();#sub1! 事实上,处理普通变量的方法与处理sub的方法几乎完全相同 sub sub1 { say "sub1!" } my &sub2 = &sub1; su

我想知道是否有办法将一个方法和/或子方法绑定到Raku中的另一个方法/子名称。我已经看到了如何将变量绑定到方法/子方法,但这并不是我想要的。我知道如何在Perl 5中实现这一点:

subsub1{
打印“sub1!\n”;
}
*sub2=\&sub1;
sub1();#sub1!
sub2();#sub1!

事实上,处理普通变量的方法与处理sub的方法几乎完全相同

sub sub1 { say "sub1!" }

my &sub2 = &sub1;

sub1; # sub1!
sub2; # sub1!

实际上,您不需要绑定,因为sub不是容器化的,
&
-sigiled变量没有特殊的赋值处理,比如
@
%
-sigiled变量。(如果您执行
。WHICH
。WHERE
,您可以看到它们指向内存中的相同位置)。

@user0721090601已经给出了subs的答案。对方法执行同样的操作要稍微复杂一些。幸运的是,生态系统中有一个模块可以让您更容易做到这一点:。这让你可以说:

use Method::Also;
# ...
method foo() is also<bar bazzy> {
使用方法::也;
# ...
方法foo()也是{

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

“SUB不是容器化的,
&
-符号化变量对于赋值没有特殊的处理…如果您执行
.WHICH
。其中
可以看到它们指向内存中的相同位置这让我很惊讶。谢谢你澄清了我的思维模式,尽管我首先必须消除我对你所写内容的一些误解谢谢!我做了很多搜索,但是我找不到这样的例子。哎呀,我完全忘记了处理方法。这很好,因为它们的功能完全不同,所以这就得到了你的答案。我最终使用了一种在概念上与你在
方法::中使用的类似的技术,只是有点幼稚(阅读:不涉及如何操作)在我对CLDR的更新中(我想它最终会在一周内及时发布)谢谢!我一定会查看Method::Alway,并查看引擎盖下的情况。@JustThisGuy引擎盖下的情况如果你不了解如何操作类,那就相当复杂了(大多数人都没有,而且大多数人都不需要触摸它们)。您还可以考虑使用特殊的方法FALLBACK重定向方法调用类处理实际上是如何触及某些特殊情况并添加对“is-allow”的支持的对于角色中的方法。真正重要的部分是
^add\u method
调用,它使用名称和
方法
对象。@user0721090601,我来看看回退。