【问题标题】:Do volatile types still exist in Scala 3?Scala 3 中还存在 volatile 类型吗?
【发布时间】:2020-10-05 17:27:05
【问题描述】:

我找不到与 Scala 3 等效的 SLS。我正在努力让自己慢慢融入 Scala 3 的思维模式并编写新代码——并在下次更改时重构旧代码——以便将其转换为 Scala 3 很简单。当前某些类型投影的用例是避免 volatile 类成员的(非常)间接结果。

【问题讨论】:

  • @user Int with String 不是易失类型 scala-lang.org/files/archive/spec/2.13/…
  • @user 哦,是的,他们一开始是。但最终定义很简单,如果在 SQL 中有点不清楚:如果它有一个抽象(类型参数,抽象类型别名)上限 B(但它仍然有一些成员,或者由于有一个具体的界限或通过细化) , 它是用抽象声明 (type T <: X) '覆盖' 一个已经存在的声明来改进的,而不是它是易变的。不过,像type T = X 这样的定义是可以的。这可能也适用于def s 和vals,尽管我从来不需要这样做。如果任何成员是抽象的,则“交集”类型算作抽象。
  • @Dmytro Mytin 谢谢,这就是我的想法,也是我问的原因。如果您将其发布为答案,我将接受。抱歉,一定是错过了这条评论!

标签: scala dotty scala-3


【解决方案1】:

我会从here复制我的评论:

Volatile types 是 Scala-2 的东西。它们是一种解决方法,可以避免因类型预测不健全而引起的问题:

Cannot override a type with non-volatile upper bound

在 Scala 3(通用)中,类型投影被丢弃

https://dotty.epfl.ch/docs/reference/dropped-features/type-projection.html

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 2022-09-30
  • 1970-01-01
相关资源
最近更新 更多