专注电子商务网站建设,福州牛蛙 网站建设,网站流量报告,网站建设最流行语言1.Scala的隐式类定义语法#xff1a;implicit class 类名(参数){ } 隐式类中参数只能定义一个#xff0c;参数中的源类型与目标类型一一对应#xff0c;只能从一种类型转换成另一种类型#xff0c;不可以一对多或多对。
//隐式类#xff1a;implicit class隐式转换函…1.Scala的隐式类定义语法implicit class 类名(参数){ } 隐式类中参数只能定义一个参数中的源类型与目标类型一一对应只能从一种类型转换成另一种类型不可以一对多或多对。
//隐式类implicit class隐式转换函数类
object test {class BaseUser(){def insertUser(){println(insertUser)}}//第一步定义一个有updateUser功能的类 PowerUser//第二步定义一个隐式转换函数把BaseUser---PowerUserimplicit class PowerUser(u:BaseUser){def updateUser(){println(updateUser)}}//给这个类添加新的功能def main(args: Array[String]): Unit {val u1new BaseUser()u1.insertUser()u1.updateUser() //添加一个新的功能}} 2.Scala的隐式参数定义语法def 函数 (implicit){ }
object test {//函数的默认参数def sayName(implicit str:String小陈):Unit{println(str)}//隐式参数值implicit val x:String小美def main(args: Array[String]): Unit {sayName(小明)sayName()sayName}
} 3.Scala的隐式值定义方式implicit val/var 变量名
object test {//函数的默认参数def sayName(implicit str:String小陈):Unit{println(str)}//隐式参数值implicit val x:String小美def main(args: Array[String]): Unit {sayName(小明)sayName()sayName}} 4.Scala的隐式对象格式implicit object 作用给函数的默认参数提供隐式值
object test3 {case class DataBase(driver:String,url:String)implicit object MySql extends DataBase (mysql,localhost:300)def getConn(implicit config:DataBase):Unitprintln(config)def main(args: Array[String]): Unit {getConn(DataBase(sqlite,localhost:80))getConn //采用默认值}}