支持调用自身对象的的角色。它用于 Block、Routine、Sub、Method、Submethod 和 Macro 类型。
可调用对象可以存储在以 & 为标记的容器中,此类容器的默认类型约束为 Callable。
my = ; # Empty block needs a semicolonmy = -> ;my = sub () ;sub foo() ;my = ;
方法§
方法 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»
方法 Capture§
method Capture()
类型图§
Callable 的类型关系