我正在查看一段代码,其中包含以下内容:
graph.vertices.filter(!_._2._1)
我知道这_是通配符,scala但我不知道!应该做什么.
!scala 中的意思是什么?
Rob*_*let 10
Scala在语法级别没有运算符.所有操作都是方法.
例如,语法中没有add运算符,但数字有一个+方法:
2.+(3) // result is 5
Run Code Online (Sandbox Code Playgroud)
当你写作时2 + 3,这实际上是上面表达式的语法糖.
任何类型都可以定义一个unary_!方法,这是!something令人厌倦的方法.布尔人实现它,具有逻辑否定("不")的明显含义,即感叹号在其他语言中具有C遗产.
在您的问题中,表达式是以下调用的缩写形式:
graph.vertices.filter { t => !(t._2._1) }
Run Code Online (Sandbox Code Playgroud)
where t元组是元组的元组,第二个元素的第一个元素具有实现的类型,unary_!并且(根据需要.filter)返回a Boolean.我敢把口袋里的钱押在元素本身就是一个Boolean,在这种情况下!只是意味着"不是".
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |