scala implicit 隐式参数
所属分类 scala
浏览量 640
隐式参数 implicit parameters
与函数中增加默认值的效果类似,但是更为灵活
相同类型的隐式变量只能定义一个
根据变量类型进行推导替换 跟名字无关
三种定义方法
def func(implicit x: Int)
def func(x: Int)(implicit y:Int)
def func(implicit x:Int, y:Int) x y都是implicit的
object ImplicitParameters {
// 根据变量类型进行推导替换 跟名字无关
implicit val name: String = "default"
log("init")
def main(args: Array[String]): Unit = {
implicit val name = "main"
log("start")
process()
log("end")("task")
}
def log(msg: String)(implicit name: String): Unit = {
println(s"[$name] $msg ")
}
def process(): Unit = {
implicit val name = "process"
log("doing something")
}
}
完整代码
https://gitee.com/dyyx/hellocode/blob/master/demo/scala/scalademo/src/main/java/demo/ImplicitParameters.scala
上一篇
下一篇
数据仓库和管道构建指南
scala break continue
Scala implicit 隐式转换
scala implicit 隐式类
2022中国SaaS领域新形势
Scala object 伴生对象