In Failure§
See primary documentation in context for method self
method self(Failure:D: --> Failure:D)
If the invocant is a handled Failure
, returns it as is. If not handled, throws its Exception
. Since Mu
type provides .self
for every class, calling this method is a handy way to explosively filter out 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
In Mu§
See primary documentation in context for method self
method self(--> Mu)
Returns the object it is called on.
In Terms§
See primary documentation in context for term self
Inside a method, self
refers to the invocant (i.e. the object the method was called on). If used in a context where it doesn't make sense, a compile-time exception of type X::Syntax::NoSelf
is thrown.