首页  

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 伴生对象