# Кортеж
Кортеж — упорядоченный набор элементов. Элементы могут быть любого типа. Длина кортежа — от 2 до 22 элементов.
Кортеж используется аналогично структуре с полями _1
, _2
и т. д., где количество полей равно количеству элементов кортежа.
Ограничения по весу см. в разделе Вес данных.
Примеры:
let x = (42, "waves", true)
x._2
Результат: "waves"
let (a, b, c) = x
c
Результат: true
# Кортеж как аргумент функции
func foo(a: (Boolean, String)) = {
a._1.toString() + "_" + a._2
}
foo((true,"waves"))
Результат: "true_waves"
# Кортеж в match ... case
match ... case
позволяет: сопоставлять элементы кортежа с типами данных или с конкретными значениями.
Примеры:
match (42, "waves") {
case (Int, String) => true
case _ => false
}
Результат: true
match (42, "waves") {
case (x: Int, _) => x == 42
case _ => false
}
Результат: true
match (42, "waves") {
case (0, y: String) => throw("Something went wrong")
case (42, y: String) => y
case _ => false
}
Результат: "waves"