Mic*_*das 2 dictionary scala implicit
具有如下定义的隐式值和函数
implicit val v = 0
def function(implicit v: Int): Map[String, String] = Map("key" -> "value")
Run Code Online (Sandbox Code Playgroud)
我可以
function.get("key") // res0: Option[String] = Some(value)
function(v)("key") // res0: String = value
Run Code Online (Sandbox Code Playgroud)
但以下不编译
function("key")
Run Code Online (Sandbox Code Playgroud)
那么如何使用括号访问地图并传递隐式参数呢?
以下是您的选择:
scala> function.apply("key")
res6: String = value
scala> function(implicitly)("key")
res7: String = value
Run Code Online (Sandbox Code Playgroud)
由于编译器无法知道您是否要显式传递隐式参数或调用apply方法,因此设计人员认为这意味着传递隐式参数.
你可以放弃使用语法糖,只是使用apply它来解决歧义,或者你可以显式传递参数,但让编译器找到值.
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |