【发布时间】:2015-08-29 13:34:03
【问题描述】:
对于 Scala 中的隐式转换,我可以使用任一隐式转换函数
implicit def intToX(i:Int):X = new X(i)
1.myMethod // -1
或隐式类
implicit class X(i: Int) {
def myMethod = - i
}
1.myMethod // -1
这两者有什么区别吗?我什么时候应该更喜欢其中一个?
有一个关于implicit conversion vs. type class 的相关问题,但它只比较隐式函数 和类型类。我感兴趣的是与隐式类的区别。
【问题讨论】:
-
我猜隐式类不应该与普通类+隐式转换不同,但我观察到
extends AnyVal存在的差异(可能是一个错误)stackoverflow.com/questions/63964610/…