4
基于Scala的文件上:http://docs.scala-lang.org/overviews/core/implicit-classes.html,隐含的类有三个限制,而最前面的一个,我在这里引用,是为什么Scala中的隐式类必须驻留在另一个特征/类/对象中?
他们必须在另一特征/类/对象中被定义
解释/证明这种限制的直觉/理由是什么?
基于Scala的文件上:http://docs.scala-lang.org/overviews/core/implicit-classes.html,隐含的类有三个限制,而最前面的一个,我在这里引用,是为什么Scala中的隐式类必须驻留在另一个特征/类/对象中?
他们必须在另一特征/类/对象中被定义
解释/证明这种限制的直觉/理由是什么?
一个隐含的类分解成一个“正常”类和实例化类的隐式方法:
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
)在对象或类之外。这就是为什么。