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

Кортеж Scala

Сборники Scala

Как и списки, кортежи также являются неизменными, но в отличие от списков, кортежи могут содержать элементы различных типов.

Значение кортежа состоит из отдельных значений, заключенных в круглые скобки. Например:

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)

Сборники Scala