gpt4 book ai didi

raku - bool 元素的混合语法

转载 作者:行者123 更新时间:2023-12-04 16:57:34 25 4
gpt4 key购买 nike

如果我尝试使用 bool 组件声明一个 Mix:

my $mix= (True => 0.3, False => 0.7).Mix;
dd $mix; # OUTPUT: «Mix $mix = ("True"=>0.3,"False"=>0.7).Mix␤»

他们使用 Pair 语法,它自动引用那些裸标识符。为了避免这种情况,您必须通过 Pair.new 显式定义 Pairs,或者使用完全限定名称。
my $mix= (Bool::True => 0.3, Bool::False => 0.7).Mix;

有没有其他方法可以做到这一点?也许更简单的方法?

最佳答案

您可以使用任何不被视为裸词的东西。

完全限定名称有效。

Bool::True => 1

他们工作的原因是空话没有 ::在他们之中。
所以你可以在前面加上 ::以及。

::True => 1

您可以使用 ::(…)
::(True) => 1

::('True') => 1
::< True > => 1

您也可以使用 ()附近 True .

(True) => 1

您可以向后声明它并使用 .antipair
( 1 => True ).antipair

( :foo ).antipair # (Bool::True) => 'foo'

如果你不介意得到一个序列,你可以使用 .invert , 或 .antipairs
# Seq.new( Bool::True => 1 )
( 1 => True ).invert
( 1 => True ).antipairs

# Seq.new( Bool::True => 1, Bool::False => 2 )
( 1 => True, 2 => False ).invert
( 1 => True, 2 => False ).antipairs

True是一个子程序而不是一个术语,你可以附加 ()
sub True ( --> True ){}

True() => 1

然后是使用 Pair.new .

Pair.new( True, 1 )

关于raku - bool 元素的混合语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54467516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com