无法在scala中找到参数的隐式值

时间:2018-04-03 11:09:41

标签: scala implicit

    def p1(c: Int)(implicit b: Int): Unit = {
        println(c + b)
    }

    def p2(a: Int, b: Int): Unit ={
        p1(a)
    }

    p2(5, 6) //result = 11
  

错误:无法找到参数b的隐含值:Int

如何解决问题,但不要使用此解决方案

 def p2(a: Int, b: Int): Unit ={
        implicit val bb = b
        p1(a)
    }

1 个答案:

答案 0 :(得分:2)

一种方法是明确传递b

def p2(a: Int, b: Int): Unit ={
    p1(a)(b)
}

第二种方法是将b }的签名中隐含的p2标记为
def p2(a: Int)(implicit b: Int): Unit ={
  p1(a)
}