在过滤器中使用按位AND运算符

德米特里F

假设我有一个简单的数字列表,例如:

val numbers = List.range(1,10)

我想使用&运算符对其进行过滤-似乎可行的最短解决方案是:

numbers.filter( x => ( x & 1 ) == 0 )

但是我不确定为什么我需要在这里()或x,但是似乎给了我以下错误(这似乎是&的问题,但是我不确定如何在文档中查找它) :

//
// overloaded method value & with alternatives:
//     (x: Long)Long <and>
//     (x: Int)Int <and>
//     (x: Char)Int <and>
//     (x: Short)Int <and>
//     (x: Byte)Int
// cannot be applied to (Boolean)
// numbers.filter( _ & 1 == 0 ) 
//
numbers.filter( _ & 1 == 0 )

另一个令人困惑的部分是%运算符可以正常工作。

// --- all good
numbers.filter( _ % 2 == 0 ) 

// --- error
//
// type mismatch;
//     found   : Int
//     required: Boolean
// numbers.filter( _ & 1 ) 
// 
numbers.filter( _ & 1 )

那么为什么“ x%2 == 0”会起作用,而“ x&1 == 0”会失败,因为它们会产生相似的结果(我认为)。如果我正确理解错误,则“ x&1”的结果为整数。而且我认为这与&运算符有关,但无法弄清楚我会在哪里查找。

斯卡拉(Scala):2.10

在此先感谢您的帮助和任何建议。

Nyavro

运营商%&有不同的优先级。因此,_ & 1 == 0尝试将1与0进行比较,然后&对布尔结果进行运算。

请参阅Scala参考-6.12.3中缀操作

优先顺序从高到低:

(all letters)
|
^
&
= !
< >
:
+ -
* / %
(all other special characters)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在过滤器函数中使用多个逻辑运算符简化Javascript代码

来自分类Dev

使用按位运算符的 Cloud Firestore 查询/过滤器

来自分类Dev

如何使用ivottable.js在过滤器上应用逻辑运算符条件

来自分类Dev

RxJs中是否存在过滤器运算符的“异步”版本?

来自分类Dev

RxJava过滤器运算符

来自分类Dev

在Scala中使用_._ 2时如何在过滤谓词中使用OR运算符

来自分类Dev

如何在 QueryDSL 中使用按位运算符?

来自分类Dev

如何使用Vue.js过滤器在道具中使用三元运算符?

来自分类Dev

如何在带有过滤器的Vue模板中使用三元运算符?

来自分类Dev

Tweepy过滤器中的逻辑运算符

来自分类Dev

Boto过滤器中的Python比较运算符

来自分类Dev

Flask-SQLAlchemy过滤器和运算符

来自分类Dev

kendo网格过滤器运算符丢失

来自分类Dev

熊猫多过滤器行运算符

来自分类Dev

在过滤器公式中使用唯一

来自分类Dev

AngularJS:如何在过滤器中使用$ http

来自分类Dev

在过滤器方法中使用类变量

来自分类Dev

在过滤器公式中使用唯一

来自分类Dev

AngularJS在过滤器中使用$索引重复

来自分类Dev

在过滤器属性中使用数据库

来自分类Dev

OData查询是否支持使用AND / OR运算符嵌套的过滤器?

来自分类Dev

如何使用@>运算符构建具有过滤器的sqlalchemy查询?

来自分类Dev

使用OR逻辑运算符组合任意数量或Q个对象的过滤器

来自分类Dev

如何在过滤器数据表中使用全局过滤器

来自分类Dev

过滤器域运算符“ child_of”的解释以及它对“ in”运算符的偏好

来自分类Dev

按位'&'运算符

来自分类Dev

按位或运算符

来自分类Dev

使用按位运算符检查位设置

来自分类Dev

在Swift中使用C风格的无符号char数组和按位运算符

Related 相关文章

热门标签

归档