パターンマッチングでインスタンスを分解

パターンマッチングとかよくわかっていませんが、 Scala 勉強会でおもしろかったネタをメモ


Pair を _1 と _2 に分解

object Main {
  def main(args : Array[String]): Unit = {
    var p = new Pair(3, 4)

    val Pair(x, y) = p // p を x と y に分解する

    println(x) // 3
    println(y) // 4
  }
}


Pair を _1 と _2 と 式に分解

object Main {
  def main(args : Array[String]): Unit = {
    var p = new Pair(3, 4)

    val e @ Pair(x, y) = p // e == p

    println(x) // 3
    println(y) // 4
    println(e) // (3, 4)
  }
}


多重代入っていうんだっけ?



神崎コンサルノート - SCALAのプレゼン