我可以定义一个变量(通过var
) 是不可变的:
var x = scala.collection.immutable.Set("aaaaaa","bbbbbb")
println(x.isInstanceOf[scala.collection.immutable.Set[String]])
x += "cccc"
println(x.isInstanceOf[scala.collection.immutable.Set[String]])
这导致:
true
true
+=
方法不是以下成员scala.collection.immutable.Set
,那么发生了什么?
编译器寻找x.+= ...
,如果找不到它,那么它会尝试将语句转换为x = x + ...
(只有在以下情况下才会成功x
is a var
, or x
脱糖成电话给一些人update
方法)。自从immutable.Set
实现了一个+
运算符,以及x
is a var
,这就成功了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)