2016-10-01 86 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]

相關問題