基于scala文档:http://docs.scala-lang.org/overviews/core/implicit-classes.html,隐式类具有三个限制,在此引用的第一个限制是



解释/证明这种限制的直觉/理由是什么?

最佳答案

隐式类分解为“普通”类和实例化该类的隐式方法:

implicit class IntOps(i: Int) { def squared = i * i }

被改写为
class IntOps(i: Int) { def squared = i * i }
implicit def IntOps(i: Int) = new IntOps(i)

但是在Scala中,您不能在对象或类之外定义方法(def IntOps)。这就是为什么。

09-30 11:08