我想調用一個帶有隱式參數的函數返回的函數,簡單而優雅。這不起作用:試圖跳過隱式參數列表
def resolveA(implicit a: A): String => String = { prefix =>
s"$prefix a=$a"
}
case class A(n: Int)
implicit val a = A(1)
println(resolveA("-->")) // won't compile
我已經想通了這是怎麼回事:斯卡拉看到("-->")
,並認爲這是一個企圖在隱含參數列表中明確填寫。我想通過它作爲prefix
的論點,但斯卡拉認爲它是a
的論點。
我已經嘗試了一些替代方法,比如在隱式參數列表之前放置一個空參數列表()
,但到目前爲止,我一直被Scala認爲返回函數的參數是試圖填充隱含參數列表resolveA
。
什麼是一種很好的方式來做我在這裏要做的事情,即使它不如我上面嘗試的語法那麼好?
@ som-snytt,隱式地在你刪除的答案中對我的真實代碼有幫助!我已經找到了解決問題的好例子。 –