当我这样做时:
var airlines = Set("Qantas", "JetStar", "Air NZ")
airlines += "Virgin"
Run Code Online (Sandbox Code Playgroud)
航空公司是一个不可改变的集合.
+= 没有在不可变的Set trait上定义.
所以是+=Scala中的一个内置的操作?我的意思是scala如何知道用新的航空公司重新分配航空公司set("Qantas", "JetStar", "Air NZ", "Virgin")?
Deb*_*ski 14
如果使用以=(例如+=)结尾的运算符但未在类上定义,则Scala编译器会将其解析为例如
airlines = airlines + "Virgin"
Run Code Online (Sandbox Code Playgroud)
或者,因为++=,我们有
airlines ++= airlines
Run Code Online (Sandbox Code Playgroud)
堕入
airlines = airlines ++ airlines
Run Code Online (Sandbox Code Playgroud)
当然,正如dmeister所说,只有在新表达式有意义时才会编译.例如,如果我们处理vars.
见的Scala参考§6.12.4赋值运算符
(<=,>=并且!=被排除作为特殊情况,因为是模式也开始=.)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |