在角色 Callable 中§
有关方法 CALL-ME 的主要文档,请参阅上下文。
method CALL-ME(Callable : |arguments)
此方法是 ( )
后缀运算符 和 .( )
后缀运算符 所必需的。它使对象实际上可调用,并且需要重载以使给定对象像例程一样工作。如果需要将对象存储在 &
符号容器中,则它必须实现 Callable。
does Callablemy = A;say a(); # OUTPUT: «called»
应用 Callable
角色不是使对象可调用的要求;如果一个类只是想在常规标量容器中添加类似子例程的语义,则可以使用子方法 CALL-ME
来实现。
my = A.new: values => [4,5,6,7];say (2); # OUTPUT: «6»
在角色 Enumeration 中§
有关方法 CALL-ME 的主要文档,请参阅上下文
multi method CALL-ME(|)
给定一个枚举值,返回一个 Enumeration
实例。
( mg => 1/1000, g => 1/1, kg => 1000/1 );say Mass(1/1000); # OUTPUT: mg