您的位置:首页 > 其它

Scala学习之五隐式转换implicit

2017-08-13 15:33 459 查看


概述

简单说,隐式转换就是:当Scala编译器进行类型匹配时,如果找不到合适的候选,那么隐式转化提供了另外一种途径来告诉编译器如何将当前的类型转换成预期类型。

第一种

class Person(val name:String)
object Person{
implicit def Person2(p :Person)=new per(p.name)
}

class per(val name:String){
def makeMiracles =println("wow wow wow ...")
}

object test {
def main(args: Array[String]): Unit = {
val p=new Person("Scala")
p.makeMiracles
}

}

第二种

class Person(val name:String)
object AAA {
implicit def Person2(p :Person)=new per(p.name)
}
class per(val name:String){
def makeMiracles =println("wow wow wow ...")
}

object test {
def main(args: Array[String]): Unit = {
import cn.yzx.spark.scala.helloworld.AAA._
val p=new Person("Scala")
p.makeMiracles
}

}

第三种

object test {
def main(args: Array[String]): Unit = {
implicit val content="GG"
talk("Scala")("mm")
talk("Scala")
}
def talk(name:String)(implicit content:String)=println(name+" "+content)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息