如何使用单个隐式参数调用 object.apply? [复制]
Posted
技术标签:
【中文标题】如何使用单个隐式参数调用 object.apply? [复制]【英文标题】:how to invoke object.apply with single implicit parameter? [duplicate] 【发布时间】:2019-05-09 05:57:04 【问题描述】:我正在尝试做这样的事情
case class Foo(p: Param)
object Bar
def apply(implicit p: Param) = Foo(p)
def qux(implicit p: Param)
.. something
val foo: Foo = Bar
.. use foo
到目前为止我所达到的是
object Bar
def apply()(implicit p: Param) = Foo(p)
def ...
val foo: Foo = Bar()
我可以不加括号吗?
【问题讨论】:
【参考方案1】:这是一个不带括号的解决方案...
case class Foo(p: Param)
object Bar
def apply(implicit p: Param) = Foo(p)
def qux(implicit p: Param)
// .. something
val foo: Foo = Bar.apply // the only change is here!
// .. use foo
...但带有明确的apply
调用,其优点是不会更改您的原始签名。
希望对你有帮助。
【讨论】:
以上是关于如何使用单个隐式参数调用 object.apply? [复制]的主要内容,如果未能解决你的问题,请参考以下文章