在 Failure 中§
有关方法定义,请参阅上下文中的主要文档
multi method defined(Failure: --> Bool)
返回 False(故障正式未定义),并将故障标记为已处理。
sub f() ;my = f;say .handled; # OUTPUT: «False»say .defined; # OUTPUT: «False»say .handled; # OUTPUT: «True»
在 Junction 中§
有关方法定义,请参阅上下文中的主要文档
multi method defined(Junction:)
检查定义性而不是布尔值。
say ( 3 | Str).defined ; # OUTPUT: «True»say (one 3, Str).defined; # OUTPUT: «True»say (none 3, Str).defined; # OUTPUT: «False»
Failure也被认为是未定义的
my =Failure.new;say (one 3, ).defined; # OUTPUT: «True»
自 6.d 起,此方法将自动线程化。
在 Mu 中§
有关方法定义,请参阅上下文中的主要文档
multi method defined( --> Bool)
在类型对象上返回 False,否则返回 True。
say Int.defined; # OUTPUT: «False»say 42.defined; # OUTPUT: «True»
一些类型(如Failure)覆盖 defined 以返回 False,即使对于实例也是如此
sub fails() ;say fails().defined; # OUTPUT: «False»
在 Mu 中§
有关例程定义,请参阅上下文中的主要文档
multi defined(Mu --> Bool)
调用对象上的 .defined 方法并返回其结果。