Scala タプル
環境 Scala 2.11.6 CentOS7.0
「Scalaスケーラブルプログラミング」(コップ本)メモ
読了:第04章まで
■ タプル
Scalaのタプルは
- インデックスは1から始まる
- 順序が存在する。
- 要素は型が異なるものを使える
※タプルとして型は決まる。例えば一度
(Int, Int)
と定義したタプルに(Int, String)
という値を代入することはできない。
である。
▽初期化
scala> val pair1 = (99, "NinetyNine") pair1: (Int, String) = (99,NinetyNine) // こうも定義できる scala> var pair2 = 100 -> "OneHundred" pair2: (Int, String) = (100,OneHundred)
▽値の設定
// タプルの要素はvalで定義されており、再設定できない scala> pair2._1 = 101 <console>:8: error: reassignment to val pair2._1 = 101 // 異なる要素のタプルを再代入も不可 scala> pair2 = ("OneHundred", 100) <console>:8: error: type mismatch; found : String("OneHundred") required: Int pair2 = ("OneHundred", 100) ^ <console>:8: error: type mismatch; found : Int(100) required: String pair2 = ("OneHundred", 100) // これはできる scala> pair2 = (1, "One") pair2: (Int, String) = (1,One)
▽値の取得
// タプルのインデックスは1から始まる scala> pair1._1 res0: Int = 99 scala> pair1._2 res1: String = NinetyNine // インデックス外の値はエラーになる scala> pair1._3 <console>:9: error: value _3 is not a member of (Int, String) pair1._3