在 scala 2.10 REPFL 中:
>
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 不要转换为隐式?