【问题标题】:Conditional Implicit Definitions Scala [duplicate]条件隐式定义Scala [重复]
【发布时间】:2020-07-24 23:09:38
【问题描述】:

我必须解决这个问题,但我找不到正确的答案。

trait Physics {
  implicit def air: Gaz,
  implicit def condense(implicit gaz: Gaz): Liquid,
  implicit def freeze(implicit liquid: Liquid): Solid

  implicitly[Solid]
}

你能用显式写的推断参数重写最后一行吗?

提示:它应该看起来像 隐式[Solid](...

非常感谢!

【问题讨论】:

  • 来自 coursera 测验,对吧?
  • 是的,但即使重新阅读文档后我也找不到正确的解决方案
  • 不应该自己做吗?
  • 我也花了一个小时来理解这个问题的含义。另一个提示:把东西整理好,去掉空格。

标签: scala implicit inferred-type


【解决方案1】:

这里有一个提示:首先考虑implicitly 只是一个和其他方法一样的方法

def implicitly[T](implicit e: T): T = e

让我们删除关键字implicit 这样

def implicitly[T](e: T): T = e

鉴于 implicitly 只是一个接受参数的方法,想想你必须做些什么才能让编译器满意并让方法 implicitly 返回 Solid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2020-12-08
    • 2020-10-22
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多