在角色 Rational 中§

请参阅方法 Bool的主要文档 在上下文中

multi method Bool(Rational:D: --> Bool:D)

如果numerator0,则返回False,否则返回True。这适用于<0/0>零分母<Rational,尽管?<0/0>.NumTrue

在 Regex 中§

请参阅方法 Bool的主要文档 在上下文中

multi method Bool(Regex:D: --> Bool:D)

与调用者的$_变量匹配,并为匹配返回True或为不匹配返回False

在 Map 中§

请参阅方法 Bool的主要文档 在上下文中

method Bool(Map:D: --> Bool:D)

如果调用者包含至少一个键/值对,则返回True

my $m = Map.new('a' => 2'b' => 17);
say $m.Bool;                                      # OUTPUT: «True␤»

在 Match 中§

请参阅方法 Bool的主要文档 在上下文中

method Bool(Capture:D: --> Bool:D)

对于成功的匹配返回True,对于不成功的匹配返回False。请注意,任何零宽度匹配也可能是成功的。

say 'abc' ~~ /^/;                   # OUTPUT: «「」␤» 
say $/.from' ',  $/.to' '?$/# OUTPUT: «0 0 True␤»

在 Failure 中§

请参阅方法 Bool的主要文档 在上下文中

multi method Bool(Failure:D: --> Bool:D)

返回False,并将故障标记为已处理。

sub f() { fail };
my $v = f;
say $v.handled# OUTPUT: «False␤» 
say $v.Bool;    # OUTPUT: «False␤» 
say $v.handled# OUTPUT: «True␤»

在 List 中§

请参阅方法 Bool的主要文档 在上下文中

method Bool(List:D: --> Bool:D)

如果列表至少有一个元素,则返回True,如果列表为空,则返回False

say ().Bool;  # OUTPUT: «False␤» 
say (1).Bool# OUTPUT: «True␤»

在 Proc 中§

请参阅方法 Bool的主要文档 在上下文中

multi method Bool(Proc:D:)

等待进程完成,如果进程的退出代码和信号都为 0,则返回True,表示进程成功终止。否则返回False

在 Allomorph 中§

请参阅方法 Bool的主要文档 在上下文中

multi method Bool(::?CLASS:D:)

如果调用者在数值上为0,则返回False,否则返回True。不考虑调用者的Str值。

注意:对于Allomorph子类RatStr,另请参见Rational.Bool

在 Junction 中§

方法 Bool的上下文中查看主要文档 in context

multi method Bool(Junction:D:)

折叠Junction并根据类型和它所包含的值返回一个布尔值。每个元素都转换为 Bool

my $n = Junction.new"one"1..6 );
say $n.Bool;                         # OUTPUT: «False␤» 

在这种情况下,所有元素都转换为True,因此断言其中只有一个元素是错误的。

my $n = Junction.new"one", <0 1> );
say $n.Bool;                         # OUTPUT: «True␤» 

在这种情况下,只有一个元素是真值,1,因此对 Bool 的强制转换返回True

在角色 Setty 中§

方法 Bool的上下文中查看主要文档 in context

multi method Bool(Setty:D: --> Bool:D)

如果调用者至少包含一个元素,则返回True

my $s1 = Set.new(123);
say $s1.Bool;                                     # OUTPUT: «True␤» 
 
my $s2 = $s1  Set.new(45);                     # set intersection operator 
say $s2.Bool;                                     # OUTPUT: «False␤»

在角色 Baggy 中§

方法 Bool的上下文中查看主要文档 in context

method Bool(Baggy:D: --> Bool:D)

如果调用者至少包含一个元素,则返回True

my $breakfast = ('eggs' => 1).BagHash;
say $breakfast.Bool;                              # OUTPUT: «True␤» 
                                                  # (since we have one element) 
$breakfast<eggs> = 0;                             # weight == 0 will lead to element removal 
say $breakfast.Bool;                              # OUTPUT: «False␤»

在 StrDistance 中§

方法 Bool的上下文中查看主要文档 in context

如果beforeafter不同,则返回True

在角色 Blob 中§

方法 Bool的上下文中查看主要文档 in context

multi method Bool(Blob:D:)

当且仅当缓冲区为空时,返回False

my $blob = Blob.new();
say $blob.Bool# OUTPUT: «False␤» 
$blob = Blob.new([123]);
say $blob.Bool# OUTPUT: «True␤»

在角色 Numeric 中§

方法 Bool的上下文中查看主要文档 in context

multi method Bool(Numeric:D:)

如果该数字等于零,则返回False,否则返回True

在 Promise 中§

方法 Bool的上下文中查看主要文档 in context

multi method Bool(Promise:D:)

对于已兑现或已违背的承诺,返回True,对于处于Planned状态的承诺,返回False

在 Mu 中§

例程 Bool的上下文中查看主要文档 in context

multi        Bool(Mu --> Bool:D)
multi method Bool(   --> Bool:D)

在类型对象上返回False,否则返回True

许多内置类型会覆盖此类型,使其对于空集合、空 字符串 或数值零返回False

say Mu.Bool;                    # OUTPUT: «False␤» 
say Mu.new.Bool;                # OUTPUT: «True␤» 
say [123].Bool;             # OUTPUT: «True␤» 
say [].Bool;                    # OUTPUT: «False␤» 
say %hash => 'full' ).Bool;   # OUTPUT: «True␤» 
say {}.Bool;                    # OUTPUT: «False␤» 
say "".Bool;                    # OUTPUT: «False␤» 
say 0.Bool;                     # OUTPUT: «False␤» 
say 1.Bool;                     # OUTPUT: «True␤» 
say "0".Bool;                   # OUTPUT: «True␤»

在 Capture 中§

方法 Bool的上下文中查看主要文档 in context

method Bool(Capture:D: --> Bool:D)

如果Capture至少包含一个命名参数或一个位置参数,则返回True

say \(1,2,3apples => 2).Bool# OUTPUT: «True␤» 
say \().Bool;                   # OUTPUT: «False␤»

在 Str 中§

方法 Bool的上下文中查看主要文档 in context

method Bool(Str:D: --> Bool:D)

如果字符串为空,则返回False,否则返回True