gpt4 book ai didi

scala - Scala 中的 ?0 类型是什么?

转载 作者:行者123 更新时间:2023-12-04 02:18:38 24 4
gpt4 key购买 nike

scala> Try(Class.forName("scala.util.Try"))
warning: there was one feature warning; re-run with -feature for details
res54: scala.util.Try[Class[?0]] forSome { type ?0 } = Success(class scala.util.Try)

有人可以解释一下什么是 ?0 类型吗?当我尝试在代码中使用它时,无法编译。

val tryMongo: Try[Class[?0]] = Try(Class.forName(MONGO_COLLECTION_CLASS))

最佳答案

这通常出现在 existential type 上,所以尝试:

scala> val tryMongo: Try[Class[`?0`]] forSome { type `?0`} = Try(Class.forName("scala.util.Try"))
tryMongo: scala.util.Try[Class[?0]] forSome { type ?0 } = Success(class scala.util.Try)

请注意,您可以选择任何名称,例如 TA 而不是 ?0 - 这只是编译器消息的约定(? 可能被选中是因为在 Java 中使用了相同的符号)。您还可以使用快捷方式 XXX[_],它完全等同于 XXX[T] forSome { type T }:

scala> val tryMongo: Try[Class[_]] = Try(Class.forName("scala.util.Try"))
tryMongo: scala.util.Try[Class[_]] = Success(class scala.util.Try)

关于scala - Scala 中的 ?0 类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com