我想简单而优雅地调用具有隐式参数的函数返回的函数。这不起作用:
("-->")
我已经知道发生了什么:Scala看到了prefix
,并认为这是尝试显式填写隐式参数列表。我希望将其作为a
参数传递,但Scala将其视为()
参数。
我已经尝试了一些替代方法,比如在隐式参数列表之前放置一个空参数列表resolveA
,但到目前为止,我总是因为Scala认为返回函数的参数是一次尝试而停止了填写{{1}}。
在这里做我想做的事情的好方法是什么,即使它不如我上面尝试的语法那么好?
答案 0 :(得分:3)
另一种选择是使用apply
返回的String => String
函数的resolveA
方法。这样编译器就不会混淆参数列表,并且比编写implicltly[A]
稍短。
scala> resolveA[A].apply("-->")
res3: String = --> a=A(1)