什么是隐式转换
隐式转换是指:scala自动把一种类型转成另一种类型的过程。这个过程对用户编程而言不可见,不需要用户手动编写代码
在scala.Predef中,可以看到有系统提供了默认的情况。
隐式函数的定义:通过implicit关键字修饰的函数,它的功能是把一种类型的数据转成另一种类型。
object imp01 {
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 //把double ---> int 。把高精度的转成低精度的,错误!!!!
i = 2.2
i = 3.3
println(i)
}
}
object imp02 {
implicit val defaultPassword:String = "88888888"
def reg( name:String)(implicit password:String="123456"):Unit = {
println(s"用户名:$name, 密码: ${password}")
}
def main(args: Array[String]): Unit = {
reg("小花")
reg("小明")("admin")
}
}