考虑这个案例类:
case class IntPrinter(implicit val i: Int) {
def print()(implicit i: Int) = println(i)
}
我可以实例化它为隐式参数显式传递一个值,如下所示:
val p = IntPrinter()(9)
我在 IRC 中被告知,从现在开始,显式传递的值将在被调用时隐式传递给 print,但事实并非如此:
p.print()
error: could not find implicit value for parameter i: Int
我做错了什么还是我误解了/得到了不正确的信息?有什么办法可以做到这一点?
编辑:事实上,如果我p._
这样导入,它会按预期工作:
import p._
p.print()
这确实打印9
。
这是正确的行为吗?使用import
听起来像坏主意吗?我该如何解决这个问题?