Scala Tuple
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
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
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
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
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)Autres extensions
Collections Scala