Существуют ли изменчивые типы в Scala 3?

Я не могу найти эквивалент SLS для Scala 3. Я пытаюсь постепенно привыкнуть к мышлению Scala 3 и писать новый код — и рефакторить старый при следующем изменении — так, чтобы его перевод на Scala 3 был простым. Некоторые текущие варианты использования проекций типов стали (очень) косвенным результатом избегания изменчивых членов класса.


person Turin    schedule 05.10.2020    source источник
comment
@user Int with String не является изменчивым типом scala-lang.org/files/archive/spec/2.13/   -  person Dmytro Mitin    schedule 05.10.2020
comment
@user о да, они сначала. Но в конечном итоге определение простое, хотя и немного неясное в SQL: если оно имеет абстрактную (параметр типа, псевдоним абстрактного типа) верхнюю границу B (но у которой все еще есть некоторые члены, либо из-за наличия конкретной границы, либо путем уточнения) , и он уточняется абстрактными объявлениями (type T <: X), «переопределяющими» уже существующее объявление, чем оно изменчиво. Однако такие определения, как type T = X, допустимы. Это, вероятно, относится и к def s и vals, хотя у меня никогда не было необходимости в этом. Типы «пересечения» считаются абстрактными, если какой-либо член является абстрактным.   -  person Turin    schedule 05.10.2020
comment
@Dmytro Mytin Спасибо, это то, что я понял и почему я спросил. Если вы опубликуете это как ответ, я приму это. И извините, должно быть, пропустил этот комментарий!   -  person Turin    schedule 05.10.2020


Ответы (1)


Я скопирую свой комментарий из здесь:

Volatile types – это Скала-2 штука. Они были обходным путем, чтобы избежать проблем, вызванных несостоятельностью проекций типов:

Невозможно переопределить тип с энергонезависимой верхней границей

В Scala 3 (общий) типы проекций отбрасываются

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

person Dmytro Mitin    schedule 05.10.2020