Failure 中§

有关 方法 self 的主要文档,请参阅 上下文

method self(Failure:D: --> Failure:D)

如果调用者是 已处理的 Failure,则按原样返回。如果未处理,则抛出其 Exception。由于 Mu 类型 为每个类提供 .self,因此调用此方法是一种爆炸性地过滤掉 Failures 的便捷方式

my $num1 = ''.Int;
# $num1 now contains a Failure object, which may not be desirable 
 
my $num2 = ''.Int.self;
# .self method call on Failure causes an exception to be thrown 
 
my $num3 = '42'.Int.self;
# Int type has a .self method, so here $num3 has `42` in it 
 
(my $stuff = ''.Int).so;
say $stuff.self# OUTPUT: «(HANDLED) Cannot convert string to number…» 
# Here, Failure is handled, so .self just returns it as is

Terms 中§

有关 术语 self 的主要文档,请参阅 上下文

在方法内部,self 指的是调用者(即调用该方法的对象)。如果在没有意义的上下文中使用,则会抛出类型为 X::Syntax::NoSelf 的编译时异常。

Mu 中§

有关 方法 self 的主要文档,请参阅 上下文

method self(--> Mu)

返回调用它的对象。