Scala documentation指出隐式类“必须在另一个特征/类/对象内部定义”

这种限制的原因是什么?

最佳答案

referenced SIP将隐式类描述为classdef的语法糖。

默认情况下,隐式类的注释会附加到生成的
类和方法。例如,

@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/

10-11 18:25