scala - 条件隐式定义 Scala
问题描述
我必须解决这个问题,但我找不到正确的答案。
trait Physics {
implicit def air: Gaz,
implicit def condense(implicit gaz: Gaz): Liquid,
implicit def freeze(implicit liquid: Liquid): Solid
implicitly[Solid]
}
你能用显式写出的推断参数重写最后一行吗?
提示:它应该看起来像隐式[Solid](...
太感谢了!
解决方案
这是一个提示:首先考虑implicitly
只是一种与其他方法一样的方法
def implicitly[T](implicit e: T): T = e
让我们删除关键字implicit
,这样
def implicitly[T](e: T): T = e
Givenimplicitly
只是一个带参数的方法,想想你必须做什么才能让编译器满意并让方法implicitly
返回 a Solid
?
推荐阅读
- qt - Qt 有哪些启用死键使用的配置选项?
- python - 获取从另一个系列对象查找的系列对象中的元素索引
- javascript - 如何将 JS 对象列表的列表合并到一个 JS 对象列表中
- javascript - 保存到 Google Cloud Storage 时,为什么我的图像“请求”文件不完整?
- c++ - 关于喜欢的列表,我怎样才能推送随机创建的第 N 个数字?
- python - Pandas 中具有最后一个值的 GroupBy Agg 列
- javascript - 从 Javascript 将 mapbox 地理编码结果返回到 Delphi
- flutter - 只需重建一个文本小部件。但仍然占用与重建整个屏幕相同的资源
- javascript - JavaScript:循环遍历节点列表
- javascript - JavaScript计算数字的百分比场地