Tuples
Prerequisites: Methods
A tuple groups a fixed number of values, which can have different types:
@main def tuples(): Unit =
val person = ("Ada", 36, "London")
println(person)
println(person(0))
println(person._2)
val (name, age, city) = person
println(s"$name, $age, from $city")
val pair = "one" -> 1
println(pair)
(Ada,36,London)
Ada
36
Ada, 36, from London
(one,1)
personhas the type(String, Int, String).- Access elements by index (
person(0)) or with_1,_2, ... (numbered from 1). - Unpack with
val (a, b, c) = .... a -> bis a shorthand for the pair(a, b)— used forMapentries.
Tuples in collections
@main def pairs(): Unit =
val scores = List(("Ada", 91), ("Linus", 78), ("Grace", 85))
for (name, score) <- scores if score > 80 do
println(s"$name: $score")
println(scores.maxBy(_._2))
Ada: 91
Grace: 85
(Ada,91)
Tuples are ideal for quick, local groupings. When the values mean
something together — a person, an order — use a case class instead
(Level 2): person.name reads far better than person._1.