问题描述
我有如下代码:
implicit val _ = new MyClass()
我收到以下错误:
Implicit pattern definition binds no variables
为什么?
我正在使用Scala-> 2.13.3,SBT-> 1.3.13和Java-> OpenJDK v14.0.2
解决方法
https://github.com/scala/scala/pull/8699
https://github.com/scala/bug/issues/11618
如果模式定义不绑定任何变量,则为 如果将其标记为隐式,可能是一个错误, 因为它没有引入隐式值, 或者它是模板语句,因为 意外地引入了模板成员。
,请警告:
implicit val _ = 42 implicitly[Int]
在Scala 3(Dotty)中,我们可以像这样提供未命名的隐式值
scala> class MyClass(val x: Int)
// defined class MyClass
scala> given MyClass(41)
// defined object given_MyClass
scala> summon[MyClass].x + 1
val res0: Int = 42