如何解决使用下划线作为标识符时,隐式模式定义不绑定任何变量
我有如下代码:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。