정해진 갯수의 요소를 담고있는 값.

지정되고 구별된 타입이 있어야 한다.

튜플은 불변하다

메소드에서 여러개의 값을 한꺼번에 출력할때 유용하다.

val ingredient = ("Sugar", 25)

Accessing the elements

println(ingredient._1) // Sugar
println(ingredient._2) // 25

println(ingredient(0)) // Sugar
println(ingredient(1)) // 25

pattern matching on tuples

val (name, quantity) = ingredient
println(name)     // Sugar
println(quantity) // 25
val planets =
  List(("Mercury", 57.9), ("Venus", 108.2), ("Earth", 149.6),
       ("Mars", 227.9), ("Jupiter", 778.3))
planets.foreach {
  case ("Earth", distance) =>
    println(s"Our planet is $distance million kilometers from the sun")
  case _ =>
}
val numPairs = List((2, 5), (3, -7), (20, 56))
for ((a, b) <- numPairs) {
  println(a * b)
}

Tuples and case classes

case class는 실제 이름이 들어가있는 값인데, 이름을 붙여야 할때 튜플보다 사용하는 것을 권장한다.