【问题标题】:Scala: Why do I get a type mismatch error when I use "Option"?Scala:为什么我在使用“选项”时会出现类型不匹配错误?
【发布时间】:2017-02-09 16:49:54
【问题描述】:

我是 Scala 新手。我有一个 Scala 函数,它的一个参数使用“选项”:

def generateTimeSnippet(startOfSentence: Double, endOfSentence: Option[Double]): (Double, Option[Double]) = {
   ...
}

当我调用这个函数时,我给参数赋值:

val snippets = generateTimeSnippet(startOfSentence = 10d, endOfSentence = 20.5)

但这会导致类型不匹配错误: “类型不匹配;发现:Double(10.0) required: Option[Double]”

我觉得这很奇怪。为什么会这样?我不应该被允许对定义为 Option[Double] 的参数使用 Doubles 吗?

【问题讨论】:

  • 在此明确指出Option 不是特殊语言功能可能会很有用。是普通类型。

标签: scala types


【解决方案1】:

当然,对于Option[Double] 类型的参数,您不能发送Double 类型的参数。它们是不同的类型。

您可以发送Some(20.5),其类型为Option[Double]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2017-01-04
    • 2020-01-12
    • 2010-12-13
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多