【问题标题】:Array SAM Scala not allowed数组 SAM Scala 不允许
【发布时间】:2018-04-19 18:56:08
【问题描述】:

您似乎无法使用 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 syntax scala-2.11 single-abstract-method


    【解决方案1】:

    它在 Scala 2.12 中有效,但 Scala 2.11 中的 SAM 支持不完整(这就是它在 -Xexperimental 下的原因)。对于 Scala 2.11,您可以使用

    Array[A](() => 5)
    

    作为一种解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2015-06-06
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多