scala隐式函数

101 阅读1分钟

一,什么是隐式转换

隐式转换是指:scala自动把一种类型转成另一种类型的过程。这个过程对用户编程而言不可见,不需要用户手动编写代码。

implicit def double2Int(d:Double):Int={
  println("double2Int被调用了.......")
  d.toInt
}


def main(args: Array[String]): Unit = {
  var i :Int=1.1

  var d:Double=1
}
class KM(var value:Double) {
  override def toString(): String = s"${value}km"
  }
  class M(var value:Double) {
    override def toString(): String = s"${value}m"
}
implicit def km2m(km:KM):M = {
   new M(km.value*1000)
}
def main(args: Array[String]): Unit = {
  val km1 = new KM(1)
  val m1:M = km1 //隐式转换
  println(km1)
  println(m1)
}