我有一个布尔值数组,我想得到逻辑和所有元素。最有效的方法是什么?
我试过
&([true,false,false]...)
但它会引发错误:
syntax: malformed expression
令人惊讶(至少对我而言)以下表达
|([true,false,false]...)
评估为true
。那我该怎么做?现在我使用一堆nots来做到这一点,但这非常不令人满意。
这实际上是否比循环遍历所有元素更好?
答案 0 :(得分:1)
&
的这种行为很可能是由于已弃用的ccall
功能造成的,其中&
用于变量前面。正如上面的评论中所解释的那样:
&
括在括号中,使其按预期工作(&)([true,false,false]...)
;但是,这是没有效率的,因为你已经传递了传递的参数; Boll
,那么all
函数是推荐的执行逻辑和的方法; reduce(&, [true,false,false])
就像phg指示的那样是一个很好的解决方案。