Scalaタプル
リストと同様、タプルも不変ですが、リストとは異なり、タプルは異なる型の要素を含むことができます。
タプルの値は、単一の値を丸括弧で囲むことで構成されます。例:
val t = (1, 3.14, "Fred")
上記の例では、タプルに3つの要素を定義しており、対応する型はそれぞれ[Int, Double, java.lang.String]です。
さらに、次の方法でも定義できます:
val t = new Tuple3(1, 3.14, "Fred")
タプルの実際の型は要素の型に依存します。例えば、(99, "サンプル") は Tuple2[Int, String] です。('u', 'r', "the", 1, 4, "me") は Tuple6[Char, Char, String, Int, Int, String] です。
現在、Scala がサポートするタプルの最大長は22です。より長い長さの場合は、コレクションを使用するか、タプルを拡張できます。
タプルの要素には数字のインデックスでアクセスできます。次のタプルのように:
val t = (4,3,2,1)
t._1 を使用して最初の要素に、t._2 を使用して2番目の要素にアクセスできます。次のようになります:
例
def main(args: Array[String]) {
val t = (4,3,2,1)
val sum = t._1 + t._2 + t._3 + t._4
println( "要素の合計: " + sum )
}
}
上記のコードを実行すると、出力結果は次のようになります:
$ scalac Test.scala $ scala Test 元素之和为: 10
タプルの反復
あなたは次を使用できますTuple.productIterator()メソッドでタプルのすべての要素を反復出力できます:
例
def main(args: Array[String]) {
val t = (4,3,2,1)
t.productIterator.foreach{ i =>println("Value = " + i )}
}
}
上記のコードを実行すると、出力結果は次のようになります:
$ scalac Test.scala $ scala Test Value = 4 Value = 3 Value = 2 Value = 1
タプルを文字列に変換
あなたは次を使用できますTuple.toString()メソッドでタプルのすべての要素を1つの文字列に結合できます。例は次のとおりです:
例
def main(args: Array[String]) {
val t = new Tuple3(1, "hello", Console)
println("結合された文字列: " + t.toString() )
}
}
上記のコードを実行すると、出力結果は次のようになります:
$ scalac Test.scala $ scala Test 连接后的字符串为: (1,hello,scala.Console$@4dd8dc3)
要素の交換
あなたは次を使用できますTuple.swapメソッドでタプルの要素を交換できます。次の例のとおりです:
例
def main(args: Array[String]) {
val t = new Tuple2("www.google.com", "www.example.com")
println("交換後のタプル: " + t.swap )
}
}
上記のコードを実行すると、出力結果は次のようになります:
$ scalac Test.scala $ scala Test 交换后的元组: (www.example.com,www.google.com)その他の拡張
Scalaコレクション