似乎无法使用SAM语法初始化数组。当我尝试以下操作时。。。
trait A { def num(): Int } trait B extends A trait C extends A val nums: Array[A] = Array(() => 5)
我得到以下错误。。。
<console>:12: error: type mismatch; found : () => Int required: A val nums: Array[A] = Array(() => 5)
这是预期的行为吗?
它在Scala 2.12中工作,但Scala 2.11中的SAM支持不完整(这就是为什么它在 -Xexperimental ).对于Scala 2.11,您可以使用
-Xexperimental
Array[A](() => 5)
作为解决方法。