/**
* Created by root
* Description : 隐式值和隐式视图
*/
object ImplicitTest { def main(args: Array[String]): Unit = { // 隐式值
implicit val str = "hello"
def fun(implicit s: String) = println(s)
fun // 调用fun函数,编译器发现参数缺省,直接去作用域内查找隐式值,保证隐式值只有一个 // 隐式视图:隐式转换为目标类型:把一种类型自动转换到另一种类型
implicit def intToString(a : Int) = a.toString
implicit def intToByte(a : Int) = a.toByte
def fun2(s: String) = println(s)
fun2(100) //调用fun2函数,参数是个整数,编译器发现函数参数类型不一致,直接去作用域内查找符合编译通过的类型 } }
相关文章
- 12-26Scala隐式转换、上下界、类比较
- 12-26scala中隐式转换之隐式类
- 12-261.18.2.8与DataStream和DataSet API结合,Scala隐式转换,通过DataSet或DataStream创建视图,将DataStream或DataSet转换成表 等
- 12-26C++类隐式转换和显式转换
- 12-26C++中的深拷贝和浅拷贝 QT中的深拷贝,浅拷贝和隐式共享
- 12-26有符号数和无符号数隐式转换
- 12-26scala中隐式转换之隐式转换调用类中本不存在的方法
- 12-26Scala:高阶函数、隐式转换(四)
- 12-26【C++自我精讲】基础系列五 隐式转换和显示转换
- 12-26Android中activity的跳转 显示启动和隐式启动