gpt4 book ai didi

raku - 如何检查数组的所有元素是否在 Perl 6 中定义?

转载 作者:行者123 更新时间:2023-11-30 23:50:27 26 4
gpt4 key购买 nike

> so (Any)
False

但是

> so [1, Any]
True

如何让它产生False

UPD:这似乎可行,但我不确定它是否正确。

> so [1, Any].all
False

最佳答案

首先,(Any) 不是 List(Any,) (注意逗号)。您应该将第一种情况设为数组(如 [Any])。否则,您将苹果与橙子进行比较:-)

当你给 so 一个列表(小写列表表示 ArrayList 在此上下文中)时,它将取列表中的元素:因此每个至少包含一个元素的列表都会给出 True。

要回答您的问题,有很多方法可以做到这一点,但所有方法都需要至少部分遍历列表。如果您确定您的列表不包含 0 或空字符串,您可以执行以下简单操作:

say so [&&] (1,Any,3); # False
say so [&&] (1,2,3); # True

[&&] 基本上是在说:1 && Any && 31 && 2 && 3

如果你不能确定,那么你将不得不做一个额外的步骤:

say [&&] (1,Any,3).map: *.defined; # False
say [&&] (1,0,3).map: *.defined; # True

请注意,在这种情况下,您不必执行 so,因为 .map 已经将值设为 True错误。我将其作为练习留给读者使用 .first 更快地做某事。

关于raku - 如何检查数组的所有元素是否在 Perl 6 中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940738/

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