欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

scala笔记-隐式变量

程序员文章站 2022-03-25 11:42:41
...

知识点:隐式变量

注意点:

  • 不声明,不能直接用
  • 一个方法,不能同时找到多个隐式变量,否则会报错
  • 如果显示指定了值,则隐式的值不会起到作用

 

测试代码:

 

package demo.scala

object TestImplicit1 {

  def test(implicit name: String) = {
    println("name=" + name)
  }

  def main(args: Array[String]): Unit = {
    //1.直接调用,没走隐式参数,结果:name=abc
    test("abc")

    //2.报错:could not find implicit value for parameter name: String
    //test

    //3.隐式参数,找到了直接用,所以test不会报错,结果:name=implicit_name
    implicit val abc = "implicit_name"
    test

    //4.显示指定时候,不会用隐式参数的值,结果:name=abc
    test("abc")

    //5.再定义一个字符串类型的隐式变量,会报错,因为方法test找到了两个字符串类型的隐式变量:ambiguous implicit values: both value s1 of type String and value abc of type String match expected type String test
    //    implicit val s1 = "s1"
  }
}

 

 

相关标签: scala 隐式变量