scala学习高级篇一
2017-12-08 15:15
274 查看
1、implicit
解释:隐式转换,可以改变方法的入参类型而不改变方法,举例说明如下:用法一:
def test(str: String): Int = { 12 }
例如如上的方法,调用的时候,入参必须是string类型,否则就报错
println(test("12"))//1 println(test(1))//2 println(test(true))//3
调用1可以,调用2,3会报错,但是用了隐式转换,即可,引用方法如下
//隐式转换 implicit def newtest(in: Int): String = in.toString implicit def neww(flag: Boolean): String = if (flag) "true" else "false"
用法二:
object Demo9 { object Context { implicit val ccc: String = "implicit" implicit val ddd: String = "implicit1" } object Param { def pr(str: String)(implicit pre: String) { println(str + ":" + pre) } } def main(args: Array[String]): Unit = { Param.pr("wzq")("18") Param.pr("wzq")(18) Param.pr("wzq")(true) import Context.ddd Param.pr("wzq") // 上面两行等价于这一行 // Param.pr("wzq")(Context.ddd) }
输出如下:
wzq:18 wzq:18 wzq:true wzq:implicit1
相关文章推荐