Tuplas de Scala
Al igual que las listas, las tuplas son inmutables, pero a diferencia de las listas, las tuplas pueden contener elementos de diferentes tipos.
El valor de una tupla se construye encerrando valores individuales entre paréntesis. Por ejemplo:
val t = (1, 3.14, "Fred")
En el ejemplo anterior se definen tres elementos en la tupla, cuyos tipos correspondientes son [Int, Double, java.lang.String].
Además, también podemos definirlas de la siguiente manera:
val t = new Tuple3(1, 3.14, "Fred")
El tipo real de una tupla depende del tipo de sus elementos, por ejemplo (99, "ejemplo") es Tuple2[Int, String]. ('u', 'r', "the", 1, 4, "me") es Tuple6[Char, Char, String, Int, Int, String].
Actualmente Scala admite tuplas de hasta 22 elementos de longitud máxima. Para longitudes mayores, puedes usar colecciones o extender las tuplas.
Se puede acceder a los elementos de una tupla mediante índice numérico, como en la siguiente tupla:
val t = (4,3,2,1)
Podemos usar t._1 para acceder al primer elemento, t._2 para acceder al segundo elemento, como se muestra a continuación:
Ejemplo
def main(args: Array[String]) {
val t = (4,3,2,1)
val sum = t._1 + t._2 + t._3 + t._4
println( "La suma de los elementos es: " + sum )
}
}
Al ejecutar el código anterior, el resultado es:
$ scalac Test.scala $ scala Test 元素之和为: 10
Iterar sobre tuplas
Puedes usarTuple.productIterator()método para iterar y generar todos los elementos de la tupla:
Ejemplo
def main(args: Array[String]) {
val t = (4,3,2,1)
t.productIterator.foreach{ i =>println("Value = " + i )}
}
}
Al ejecutar el código anterior, el resultado es:
$ scalac Test.scala $ scala Test Value = 4 Value = 3 Value = 2 Value = 1
Convertir tupla a cadena
Puedes usarTuple.toString()método para combinar todos los elementos de la tupla en una cadena, como en el siguiente ejemplo:
Ejemplo
def main(args: Array[String]) {
val t = new Tuple3(1, "hello", Console)
println("La cadena resultante es: " + t.toString() )
}
}
Al ejecutar el código anterior, el resultado es:
$ scalac Test.scala $ scala Test 连接后的字符串为: (1,hello,scala.Console$@4dd8dc3)
Intercambio de elementos
Puedes usarTuple.swapmétodo para intercambiar los elementos de la tupla. Como en el siguiente ejemplo:
Ejemplo
def main(args: Array[String]) {
val t = new Tuple2("www.google.com", "www.example.com")
println("La tupla después del intercambio: " + t.swap )
}
}
Al ejecutar el código anterior, el resultado es:
$ scalac Test.scala $ scala Test 交换后的元组: (www.example.com,www.google.com)Otras extensiones
Colecciones de Scala