2016-10-01 7 views
1

私はScalaを初めて使う人です。私は、Scalaの機能を持ち、引数の1つは、「オプション」を使用しています。私は、この関数を呼び出すとScala: "Option"を使用すると、型の不一致エラーが発生するのはなぜですか?

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

は、私は、引数にリテラル値を与える:

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

しかし、これはタイプになり不一致エラー: "タイプの不一致; found:Double(10.0)required:オプション[Double]"

これは非常に奇妙です。なぜこうなった? Option [Double]として定義されている引数に対してDoublesを使用することは許可されていませんか?

+0

であるSome(20.5)に送信することができます。それは普通のタイプです。 –

答えて

3

もちろん、タイプOption[Double]の引数の場合、タイプDoubleで送信することはできません。彼らは異なるタイプです。

あなたはそれを明示的に `Option`は特別な言語機能ではないことをここに指摘することが有用であり得るタイプOption[Double]

関連する問題