imp的用法

23 阅读1分钟
implicit  def double2Int(d:Double);Int = {
  println("调用 double2int")
  d.toInt
}

def main(args: Array[String]): Unit = {
  var i:Int = 1;
  val d:Double = i // 把int --> double  模式转换。把精度低的数据转换成精度高的数据,这是可以的
  
  i = 1.2
  i = 2.2
  i = 3.3
implicit val defaultPassword:String = "888888"

def reg( name:String)(implicit  passsword:String="123456"):Unit = {
  println(s"用户名:${name},密码: ${password}")
}

def main(args: Array[String]): Unit = {
  reg("小花")
  reg("小明")("admin")
override def toString: String = s"{value} 百米"
}

class M(var value: Double) {
  override def toString: String = s"{value} 米"
}

// 补充隐式转换函数,把KM -> M
implicit def Km2m(Km:Km):M = { new M(km.value * 1000)}
//
//

def main(args: Array[String]): Unit = {
   val Km1 = new KM(2)
   val m1:M = km1
  
  val m2:M = new BM(2)
  
  println(m1)
  println(m2)