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

Scala-Tuple

Scala 集合

Wie Listen sind Tuples nicht änderbar, aber anders als Listen können Tuples Elemente verschiedener Typen enthalten.

Der Wert eines Tuples wird durch das Enthalten einzelner Werte in runden Klammern gebildet. Zum Beispiel:

val t = (1, 3.14, "Fred")

Die obigen Beispiele definieren drei Elemente im Tuple, deren Typen [Int, Double, java.lang.String] sind.

Außerdem können wir auf die folgenden Weise definieren:

val t = new Tuple3(1, 3.14, "Fred")

Die tatsächliche Typbezeichnung des Tuples hängt von den Typen seiner Elemente ab, z.B. (99, "w3codebox") ist ein Tuple2[Int, String]. ('u', 'r', "the", 1, 4, "me") wird zu einem Tuple6[Char, Char, String, Int, Int, String].

Der maximale Länge eines Tuples, die Scala unterstützt, beträgt 22. Für größere Längen können Sie Mengen oder erweiterte Tuples verwenden.

Zugriff auf die Elemente eines Tuples kann durch numerische Indizes erfolgen, wie folgendem Tuple:

val t = (4,3,2,1)

Wir können t._ verwenden1 Zugriff auf das erste Element, t._2 Zugriff auf das zweite Element, wie folgt:

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() 方法将元组的所有元素组合成一个字符串,示例如下:

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", "de.oldtoolbag.com")
      
      println("交换后的元组: " + t.swap )
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
交换后的元组: (de.oldtoolbag.com,www.google.com)

Scala 集合