【发布时间】:2014-06-04 08:09:28
【问题描述】:
编译错误的类定义:
class Foo(implicit x : Int) {
def this(s : String) = this(s.length)
}
并且类定义可以通过编译
class Foo(implicit x : Int) {
def this(s : String) = this()(s.length)
}
在我看来,第一个定义是正确的。 由于辅助构造函数显式调用了预期 Integer 作为参数的主构造函数,因此似乎没有错。 而对于通过编译的第二类定义,其实我不太明白为什么会这样。
【问题讨论】:
-
似乎编译器在您的第一个示例中没有生成主构造函数,并且无法解析对
Foo(Int)的调用
标签: scala