れおの備忘録(´・ω・`)

〜なんでも書いちゃおう〜

ScalaでのSuspicious Shadowingについて

ある日。同僚から突然こんな問題が出題されました。

 def doSomething(x: Int, y: Int): Unit = y match {
    case `x` => println("A")
    case 0   => println("B")
    case 1   => println("C")
  }

  doSomething(1, 0) // => ?
  doSomething(0, 1) // => ?
  doSomething(1, 1) // => ?
  doSomething(0, 0) // => ?

【クイズ】 最後の4行はそれぞれA.B.Cのどれが出力されるでしょーか!

xのマッチが怪しいなぁ、とおもいつつも、B, C, C, Bしか思いつきませんでしたが、答えはなんと…

続きを読む