基于scala文档:http://docs.scala-lang.org/overviews/core/implicit-classes.html,隐式类有三个限制,我在这里引用的第一个是
它们必须在另一个trait/class/object中定义
解释/证明这种限制的直觉/理由是什么?
0__*_*0__ 10
隐式类分解为"普通"类和实例化类的隐式方法:
implicit class IntOps(i: Int) { def squared = i * i }
Run Code Online (Sandbox Code Playgroud)
被重写为
class IntOps(i: Int) { def squared = i * i }
implicit def IntOps(i: Int) = new IntOps(i)
Run Code Online (Sandbox Code Playgroud)
但是在Scala中,您无法def IntOps在对象或类之外定义方法().这就是为什么.
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |