我想知道我是否可以创建隐式增量或者" ++"运营商on" Int"类型 我可以从我的代码中的任何范围调用。
(即从任何包裹中)
所以例如:
var x = 4
x++
println(x) // will print 5
感谢。
答案 0 :(得分:0)
您可以在高级别创建隐式类(util包)。我能够使用显式类型归属实现这一点:
object RichPrimitive {
implicit class RichInt(var int: Int) {
def ++ = int = int + 1
}
}
import RichPrimitive.RichInt
var x: RichInt = 4 // if you don't do : RichInt, this does not work
x ++
println(x.int) // returns 5
不完全确定为什么隐含没有处理它(println
没有它x
返回4
)。
答案 1 :(得分:0)
没有
collection.mutable.Map
添加值正在改变Map,而不是更改保存地图的变量)implicit class RichInt
,但如果要从任何其他程序包中使用它,您仍然需要导入它。那就是说,@ Tanjin的回答是你想要的一个很好的近似。