scalabook
Tuple (кортежи)
Scala tuple
- это тип, который позволяет помещать коллекцию разных типов в один и тот же контейнер.
Например, учитывая case class Person
:
case class Person(name: String)
можно построить кортеж, содержащий Int
, String
и Person
:
val t = (11, "eleven", Person("Eleven"))// t: Tuple3[Int, String, Person] = (11, "eleven", Person(name = "Eleven"))
Доступ к значениям кортежа осуществляется через индекс (начиная с 0):
t(0)// res0: Int = 11t(1)// res1: String = "eleven"t(2)// res2: Person = Person(name = "Eleven")
либо через методы вида ._i
, где i
- порядковый номер (начиная с 1, в отличие от индекса)
t._1// res3: Int = 11t._2// res4: String = "eleven"t._3// res5: Person = Person(name = "Eleven")
Также можно использовать extractor
для присвоения переменным значений полей кортежа:
val (num, str, person) = t// num: Int = 11// str: String = "eleven"// person: Person = Person(name = "Eleven")
Кортежи хороши для случаев, когда необходимо поместить коллекцию разнородных типов в небольшую структуру, похожую на коллекцию.
Ссылки: