scala – 在一个Map上的in =一个前缀运算符=?
发布时间:2020-12-16 19:21:03 所属栏目:安全 来源:网络整理
导读:在Martin Odersky的“ Scala编程”一书中,第一章有一个简单的例子: var capital = Map("US" - "Washington","France" - "Paris")capital += ("Japan" - "Tokyo") 第二行也可以写成 capital = capital + ("Japan" - "Tokyo") 我很好奇=符号.在Map类中,我没有
在Martin Odersky的“
Scala编程”一书中,第一章有一个简单的例子:
var capital = Map("US" -> "Washington","France" -> "Paris") capital += ("Japan" -> "Tokyo") 第二行也可以写成 capital = capital + ("Japan" -> "Tokyo") 我很好奇=符号.在Map类中,我没有找到a =方法.我在一个自己的例子中能够做同样的行为 class Foo() { def +(value:String) = { println(value) this } } object Main { def main(args: Array[String]) = { var foo = new Foo() foo = foo + "bar" foo += "bar" } } 我在问自己,为什么=符号是可能的.如果类Foo中的方法被称为test,则它不起作用.这导致我使用前缀表示法.赋值符号(=)的前缀表示法是?有人可以解释这种行为吗? 解决方法
如果你有一个返回相同对象的符号方法,那么追加equals将执行操作和赋值(作为一个方便的快捷方式).您也可以始终覆盖符号方法.例如,
scala> class Q { def ~#~(q:Q) = this } defined class Q scala> var q = new Q q: Q = Q@3d511e scala> q ~#~= q (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |