Scala documentation指出隐式类“必须在另一个特征/类/对象内部定义”
这种限制的原因是什么?
最佳答案
referenced SIP将隐式类描述为class
和def
的语法糖。
默认情况下,隐式类的注释会附加到生成的
类和方法。例如,
@bar
implicit class Foo(n: Int)
将脱糖成:
@bar implicit def Foo(n: Int): Foo = new Foo(n)
@bar class Foo(n:Int)
由于
def
必须在trait / class / object中,所以部分由def
“组成”的隐式类也必须遵守此条件。 关于scala - Scala隐式类限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32505282/