1

パラメータとして (String, Double) を期待するメソッドがあります

scala> def testTupleType(x: (String, Double)) = {}
testTupleType: (x: (String, Double))Unit

scala> val x: Int = 2
x: Int = 2

次に、パラメーターを次のように testTupleType メソッドに渡そうとします。

scala> val testTuple = ("String", x)
testTuple: (String, Int) = (String,2)

scala> testTupleType(testTuple)
<console>:11: error: type mismatch;
 found   : (String, Int)
 required: (String, Double)
              testTupleType(testTuple)

期待どおりのエラーが表示されます。しかし、パラメーターをインラインで渡すと:

 scala> testTupleType(("String", x))

エラーはありません!ここでの暗黙的な変換が原因かわかりませんか?

4

3 に答える 3