scala> class A(implicit a: Int);
defined class A
scala> class B()(implicit a: Int);
defined class B
scala> new A()(1)
res1: A = [email protected]
scala> new B()(1)
res2: B = [email protected]
scala> new A(1)
<console>:7: error: too many arguments for constructor A:()(implicit a: Int)A
new A(1)
为什么Scalac在类声明中提供的隐式参数列表之前插入一个空的参数列表?为什么不能隐含类的第一个参数列表?
这似乎是一个特性,而不是bug,由commentary in the scalac sources判断:
//转换(隐...)来 ()(隐...)如果只 参数部分
我很想知道为什么这样做。我觉得这很令人惊讶。