考虑以下方法:
scala> def f(x: Int)(implicit y: Int, z: Int) = x + y + z
f: (x: Int)(implicit y: Int, implicit z: Int)Int
我可以定义一个隐含的,然后应用它。
scala> implicit val x: Int = 5
x: Int = 5
scala> f(10)
res0: Int = 20
但是,显然,我不仅可以指定一个隐含的参数:
scala> f(10)(y = 10)
<console>:10: error: not enough arguments for method f:
(implicit y: Int, implicit z: Int)Int.
Unspecified value parameter z.
f(10)(y = 10)
^
是否可以指定隐式参数,即y
,但将z
保留为隐式解析?
答案 0 :(得分:2)
您可以使用implicitly
method 来满足参数列表的要求:
scala> f(10)(y = 10, implicitly)
res0: Int = 25
因为它是Predef
的一部分,所以它没有任何导入声明。