微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala3 中基于通配符的存在类型

如何解决Scala3 中基于通配符的存在类型

Scala 3 docs 中所述,不能用通配符表示的存在类型通常被删除。这是我的代码

Scala 2

trait Test[A]

val t: T forSome { type T <: Test[Int] } = null //fine

Demo

Scala 3

尝试使用通配符在 Scala 3 中重写它:

trait Test[A]

val t: _ <: Test[Int]  = null //error: Unbound wildcard type

Demo

文档就是这么说的

只能使用通配符表示的存在类型(但不能 forSome) 仍受支持,但被视为细化类型

问题:为什么我的示例不起作用。有没有办法让它工作?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。