scala implicit暗黙変換
423 ワード
object ScalaDemo extends App {
case class Water(temp: Int)
case class Ice(temp: Int)
implicit def waterToIce(water: Water): Ice = Ice(water.temp)
def getTemp(ice: Ice) = ice.temp
val water = Water(25)
println(getTemp(water))
}
getTempに必要なのはIceインスタンスですが、私たちが伝えたのはWaterインスタンスで、implicitが宣言したwaterToIceメソッドを自動的に呼び出し、waterをiceに変換します.この定義がなければgetTemp(water)はコンパイルできない.