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)将编译不通过.