English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Как и списки, кортежи также являются неизменными, но в отличие от списков, кортежи могут содержать элементы различных типов.
Значение кортежа состоит из отдельных значений, заключенных в круглые скобки. Например:
val t = (1, 3.14, "Fred")
В вышеуказанных примерах в кортеже определены три элемента, соответствующие типам [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 для доступа к первому элементу, t._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("Value = " + i )} } }
Выполните вышеуказанный код, результат вывода будет:
$ scalac Test.scala $ scala Test Value = 4 Value = 3 Value = 2 Value = 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", "ru.oldtoolbag.com") println("Обменяемые пары: " + t.swap ) } }
Выполните вышеуказанный код, результат вывода будет:
$ scalac Test.scala $ scala Test Обменяемые пары: (ru.oldtoolbag.com,www.google.com)