Scala Tuple

Scala 集合Collections Scala

Comme les listes, les tuples sont immuables, mais contrairement aux listes, les tuples peuvent contenir des éléments de types différents.

Une valeur de tuple est formée en plaçant des valeurs individuelles entre parenthèses. Par exemple :

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

L'exemple ci-dessus définit trois éléments dans le tuple, avec les types correspondants [Int, Double, java.lang.String].

De plus, nous pouvons également le définir de la manière suivante :

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

Le type réel d'un tuple dépend des types de ses éléments. Par exemple, (99, "example") est Tuple2[Int, String], et ('u', 'r', "the", 1, 4, "me") est Tuple6[Char, Char, String, Int, Int, String].

Actuellement, Scala prend en charge les tuples d'une longueur maximale de 22. Pour des longueurs plus grandes, vous pouvez utiliser des collections ou étendre les tuples.

Vous pouvez accéder aux éléments d'un tuple par index numérique, comme le tuple suivant :

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

Nous pouvons utiliser t._1 pour accéder au premier élément, et t._2 pour accéder au deuxième élément, comme montré ci-dessous :

Exemple

object Test {
   def main(args: Array[String]) {
      val t = (4,3,2,1)

      val sum = t._1 + t._2 + t._3 + t._4

      println( "La somme des éléments est : "  + sum )
   }
}

Après avoir exécuté le code ci-dessus, le résultat de sortie est :

$ scalac Test.scala 
$ scala Test
元素之和为: 10

Itérer sur un tuple

Vous pouvez utiliser la méthodeTuple.productIterator()pour parcourir et afficher tous les éléments du tuple :

Exemple

object Test {
   def main(args: Array[String]) {
      val t = (4,3,2,1)
     
      t.productIterator.foreach{ i =>println("Valeur = " + i )}
   }
}

Après avoir exécuté le code ci-dessus, le résultat de sortie est :

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

Conversion d'un tuple en chaîne

Vous pouvez utiliser la méthodeTuple.toString()pour combiner tous les éléments du tuple en une seule chaîne, comme dans l'exemple ci-dessous :

Exemple

object Test {
   def main(args: Array[String]) {
      val t = new Tuple3(1, "hello", Console)
     
      println("La chaîne concaténée est : " + t.toString() )
   }
}

Après avoir exécuté le code ci-dessus, le résultat de sortie est :

$ scalac Test.scala 
$ scala Test
连接后的字符串为: (1,hello,scala.Console$@4dd8dc3)

Échange d'éléments

Vous pouvez utiliser la méthodeTuple.swappour échanger les éléments du tuple. Comme dans l'exemple ci-dessous :

Exemple

object Test {
   def main(args: Array[String]) {
      val t = new Tuple2("www.google.com", "www.example.com")
     
      println("Tuple après échange : " + t.swap )
   }
}

Après avoir exécuté le code ci-dessus, le résultat de sortie est :

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

Scala 集合Collections Scala

Autres extensions