代码之家  ›  专栏  ›  技术社区  ›  tst

在布尔数组上应用`&`

  •  2
  • tst  · 技术社区  · 6 年前

    我有一个布尔值数组,我想得到所有元素的逻辑与。最有效的方法是什么?

    我试过了

    &([true,false,false]...)
    

    但它抛出了错误:

    syntax: malformed expression
    

    令人惊讶的是(至少对我来说)下面的表达

    |([true,false,false]...)
    

    计算结果为 true . 那我该怎么做呢?现在我用了很多Nots来做这个,但是这是非常不令人满意的。

    这是否比循环遍历所有元素要好?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bogumił Kamiński    6 年前

    最可能的这种行为 & 是由弃用 ccall 功能,其中 & 在变量前面使用。如以上评论所述:

    • 你可以包装 & 在括号中使其按预期工作 (&)([true,false,false]...) ;但是,这不是有效的,因为您已经展开了传递的参数;
    • 如果你的论点都是 Boll 然后 all 功能是推荐的执行方式 逻辑与 ;
    • 如果你需要的话 按位与 然后 reduce(&, [true,false,false]) 是一个很好的解决方案 phg 表明。