当前位置: 首页 > 知识库问答 >
问题:

条件隐式定义Scala[重复]

唐骏祥
2023-03-14
trait Physics {
  implicit def air: Gaz,
  implicit def condense(implicit gaz: Gaz): Liquid,
  implicit def freeze(implicit liquid: Liquid): Solid

  implicitly[Solid]
}

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

太感谢你了!

共有1个答案

井斌斌
2023-03-14

这里有一个提示:首先考虑implicity与其他方法一样只是一个方法

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

允许删除关键字implicit,以便

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

假设implicity只是一个接受参数的方法,那么考虑一下您必须做些什么才能使编译器满意,并使methodimplicity返回一个solid

 类似资料:
  • 我正在尝试创建一个目前仅限使用的简单整数算术表达式解析器。目前我有: 规则ExpressionList似乎会导致一些问题。如果我删除所有包含ExpressionList的内容,一切都会编译并且似乎运行良好。但像上面一样,我收到了以下错误: 我正在使用Eclipse和Antlr4插件。我试图根据antlr4书中给出的cymbol语法来确定自己的方向。 有人能告诉我我的小语法出了什么问题吗?

  • 下面是一个示例火花代码,它将转换为: Scala没有方法,它来自Spark Implicits。这里的数据集是如何创建的? 编辑:我确实看过其他SO答案,但没有看到一个示例,说明如何在中使用隐式。我在评论中参考了示例答案。

  • 如何定义具有多个隐式参数的函数。

  • 编辑 如果我导入一个隐式的。但是,我有方法,它在第二种情况下触发错误,但在第一种情况下不触发。请告诉我如何正确定义这个方法,它通常在编译时不需要隐式。_

  • 如果我对“令牌”不感兴趣,因为规则已经建立了我要匹配的对象,而且我无论如何都要跳过它,那么用和令牌声明替换它有意义吗?(然后,代币的数量将会增加。)为什么在ANTLRWorks中这是一个警告?

  • 我在学习Scala playframework教程时遇到了一段令我迷惑不解的代码: 于是我决定调查一下,偶然发现了这个帖子。