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" } }