Scalaのタプル
そして、リスト、タプルは不変ですが、リストはタプルと異なるのは、要素の種類を含めることができます。
値のタプルは括弧構成で単一の値に含まれています。 例えば:
val t = (1, 3.14, "Fred")
上記の3つの要素の例は、タイプに対応するタプルで定義されている[INT、ダブル、java.lang.Stringで]です。
さらに、我々はまた、上記の方法を使用して定義することができます。
val t = new Tuple3(1, 3.14, "Fred")
実際のタプル型は、(99、 "w3big」)として、その要素の種類に依存Tuple2 [INT、文字列]です。 ( 'U'、 'R'、 ""、1、4、「私」)はTuple6 [シャア、シャア、文字列、整数、整数、文字列]です。
現在、最大のタプル長Scalaのサポートは22です。 大きい長さのためには、コレクションまたは拡張子タプルを使用することができます。
アクセスタプルの要素はタプルとして、数値インデックスすることができます:
val t = (4,3,2,1)
次のように私たちは、二番目の要素にアクセスt._2、アクセスt._1最初の要素を使用することができます。
object Test { 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()メソッドを使用することができます。
object Test { 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()メソッドを使用することができ、次のような例は、文字列にタプルのすべての要素を組み合わせました:
object Test { 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交換素子にメソッドを使用することができます。 以下の例:
object Test { def main(args: Array[String]) { val t = new Tuple2("www.google.com", "www.w3big.com") println("交换后的元组: " + t.swap ) } }
上記のコードの実装、出力は次のようになります。
$ scalac Test.scala $ scala Test 交换后的元组: (www.w3big.com,www.google.com)