Scala кортеж
И списки, кортежи неизменен, но список отличается от кортеж может содержать различные типы элементов.
Значение кортежа содержится одним значением в круглые скобки конституции. Например:
val t = (1, 3.14, "Fred")
Примеры этих трех элементов определяются в кортеже, соответствующего типа [Int, Double, java.lang.String].
Кроме того, мы также можно определить с помощью описанного выше метода:
val t = new Tuple3(1, 3.14, "Fred")
Фактический тип кортежа зависит от типа его элементов, таких, как (99, "w3big") является Tuple2 [Int, String]. ( 'U', 'г', "О", 1, 4, "меня") является 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", "www.w3big.com") println("交换后的元组: " + t.swap ) } }
Реализация указанного выше кода, выход:
$ scalac Test.scala $ scala Test 交换后的元组: (www.w3big.com,www.google.com)