在Scala 2.10 REPL中:
请注意,如果类E本身被标记为隐式的话,与使用先前的转换方法相比,常规的
哇,如果这种隐式转换在作用域内,我就完全可以毁掉一个程序!有没有一种方法可以让Scala不将含义转换为隐式?
>
class E(val i: Int) { def += (other: E) = i - other.i }
implicit def toE(i: Int) = new E(i)
var j = 1
j += 3
结果是:
res1: Int = -2
> j
j: Int = 1
请注意,如果类E本身被标记为隐式的话,与使用先前的转换方法相比,常规的
+=
不会产生干扰。哇,如果这种隐式转换在作用域内,我就完全可以毁掉一个程序!有没有一种方法可以让Scala不将含义转换为隐式?