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 (将#修改为@)