これは正常に動作します:List [Int、Int]が有効なScala型でないのはなぜですか?
def list: List[Int] = List(1, 2, 3)
しかし、これはしていません:
def list: List[Int, Int] = List((1, 1), (1, 2))
Error : :28: error: wrong number of type arguments for List, should be 1
問題は何ですか?
これは正常に動作します:List [Int、Int]が有効なScala型でないのはなぜですか?
def list: List[Int] = List(1, 2, 3)
しかし、これはしていません:
def list: List[Int, Int] = List((1, 1), (1, 2))
Error : :28: error: wrong number of type arguments for List, should be 1
問題は何ですか?
署名は次のようになります。
意味def list: List[(Int,Int)]
:2 Int
の
のタプルをあなたは[
]
内List
後に定義する引数/タイプ - ブラケットはどのような種類のデータの定義しますリストに含める必要があります。
最初の定義List[Int]
はあなたが使用することができますInt
ペアのリストを持っているしたい場合は、整数のリストを期待すると言う
List[(Int,Int)]
または
List[Tuple2[Int,Int]]
'List [Tuple2 [Int]]は' List [Int、Int] 'と無効です... –
が修正されました。ありがとう。 –
元の質問は
ですWhy is List[Int, Int] not a valid Scala type?
答えはですコンストラクタは、それはあなたがTuple
を作るためにそれらの周りに括弧を追加することにより、単一の一つに2つのパラメータを変換する必要があります動作させるために、ので、あなたの場合には、単一の型パラメータを持つパラメータ化されている:
def list: List[(Int, Int)] = List((1, 1), (1, 2))
素晴らしい返信です。 –
物事広場で角カッコは型引数です。 '[Int、Int]' < - これは2つの型引数です。 –
':t List((1,1)、(1,2))'をREPLに入力すると、その型が何であるかがわかります(List [(Int、Int)])。 –