首页 > 解决方案 > 使用下划线作为标识符时,隐式模式定义不绑定任何变量

问题描述

我有如下代码:

implicit val _ = new MyClass()

我收到以下错误:

Implicit pattern definition binds no variables

为什么?

我正在使用 Scala -> 2.13.3、SBT -> 1.3.13 和 Java -> OpenJDK v14.0.2

标签: scalaimplicit

解决方案


https://github.com/scala/scala/pull/8699

https://github.com/scala/bug/issues/11618

如果一个模式定义没有绑定任何变量,那么如果它被标记为隐式可能是一个错误,因为它没有引入隐式值,或者如果它是一个模板语句,因为它不小心引入了一个模板成员。

请注意:

implicit val _ = 42
implicitly[Int]

推荐阅读