2016-10-01 64 views
1

我是斯卡拉新手。我有一个Scala的功能,它的一个参数使用“选项”:Scala:当我使用“Option”时,为什么会出现类型不匹配错误?

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

当我调用这个函数,我给文字值的参数:

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

但这导致类型失配误差: “类型不匹配;实测值:双(10.0)必需的:选项[双]”

我发现这个很奇怪。这是为什么发生?我不应该被允许使用双精度来定义为Option [Double]的参数吗?

+0

我们可以在这里明确指出,'Option'不是一种特殊的语言功能非常有用的。这是一种普通的类型。 –

回答

3

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

您可以在Some(20.5)发送这是该类型Option[Double]

相关问题