English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Scalaのタプル

Scala コレクション

リストと同様に、タプルも変更不可ですが、リストとは異なり、タプルは異なる型の要素を含むことができます。

タプルの値は、単一の値を丸括弧で囲むことで構成されます。例えば:

val t = (1, 3。14「Fred」)

上記の例では、タプルに3つの要素が定義されており、対応する型は[Int, Double, java.lang.String]です。

また以下のように定義することもできます:

val t = new Tuple3(1, 3。14「Fred」)

タプルの実際の型はその要素の型に依存します。例えば、(99「w3codebox」) は 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 第1要素にアクセスする方法は、t._2 第2要素にアクセスする方法は以下の通りです:

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("値= " + i )}
   }
}

以下のコードを実行すると、出力結果が:

$ scalac Test.scala 
$ scala Test
値= 4
値= 3
値= 2
値= 1

タプルを文字列に変換

以下を使用できます Tuple.toString() タプルのすべての要素を1つの文字列に結合する方法を示します。以下の例です:

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", "ja.oldtoolbag.com")
      
      println("交換後のタプル: " + t.swap )
   }
}

以下のコードを実行すると、出力結果が:

$ scalac Test.scala 
$ scala Test
交換後のタプル: (ja.oldtoolbag.com,www.google.com)

Scala コレクション