首页 > 解决方案 > 条件隐式定义 Scala

问题描述

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

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

  implicitly[Solid]
}

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

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

太感谢了!

标签: scalaimplicitinferred-type

解决方案


这是一个提示:首先考虑implicitly只是一种与其他方法一样的方法

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

让我们删除关键字implicit,这样

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

Givenimplicitly只是一个带参数的方法,想想你必须做什么才能让编译器满意并让方法implicitly返回 a Solid


推荐阅读