【问题标题】:What is the difference between the two definitions [duplicate]这两个定义有什么区别[重复]
【发布时间】:2020-12-29 16:05:35
【问题描述】:

这两种定义有什么区别?

def f[F[_]: Async](...) = ???

def f[F[_]](...)(implicit F: Async[F]) = ???

稍后我可以在第一种情况下使用Async[F].async {},在第二种情况下使用F.async {} 但我无法弄清楚区别。谢谢。

【问题讨论】:

  • 如果你对隐式不放心,你可能不会像猫一样使用 lib 效果

标签: scala implicit context-bound


【解决方案1】:

我想说,这只是个人喜好问题。

一个是另一个语法糖,您可以使用其中任何一个来实现相同的目标。

请注意,您可以使用此 Async[F].async {} 只是因为有人已经定义了类似于您的第二个选项的 apply 方法。

如果不是这样,那你就得写成implicitly[Async[F]].async {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多