数组 SAM Scala 不允许
Array SAM Scala not allowed
您似乎无法使用 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,您可以使用
Array[A](() => 5)
作为解决方法。
您似乎无法使用 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,您可以使用
Array[A](() => 5)
作为解决方法。