TG Telegram Group & Channel
Scala bin | United States America (US)
Create: Update:

Вдогонку к приятной новости про implicit-ы (как некоторые заметили, очередной шаг в направлении языка Haskell) в Scala 3 было внесено не менее масштабное предложение - полностью исключить null из значений отдельных типов и обособить его в свой собственный Null наряду с уже существующими AnyVal (примитивы) и AnyRef (объекты).

В целом, предложение содержит полную переработку механизма обращения с null-значениями на уровне компилятора. Основная идея заключается в присвоении всем потенциально аnullируемым значениям типа TypeName | Null, в связи с чем их уже нельзя будет передать в методы, принимающие строго тип TypeName. Из интересных особенностей - уточнение типа переменных при сравнении с null на стабильных путях (привет, Kotlin!). При этом авторы также основательно поработали над взаимодействием с кодом предыдущих версий языка Scala и Java-библиотеками, благодаря чему уже существующий код потребует лишь незначительных изменений.

Полное описание предложения можно найти по ссылке:
https://gist.github.com/abeln/9f79774bac111d99b3ae2cb9016a33e6

Вдогонку к приятной новости про implicit-ы (как некоторые заметили, очередной шаг в направлении языка Haskell) в Scala 3 было внесено не менее масштабное предложение - полностью исключить null из значений отдельных типов и обособить его в свой собственный Null наряду с уже существующими AnyVal (примитивы) и AnyRef (объекты).

В целом, предложение содержит полную переработку механизма обращения с null-значениями на уровне компилятора. Основная идея заключается в присвоении всем потенциально аnullируемым значениям типа TypeName | Null, в связи с чем их уже нельзя будет передать в методы, принимающие строго тип TypeName. Из интересных особенностей - уточнение типа переменных при сравнении с null на стабильных путях (привет, Kotlin!). При этом авторы также основательно поработали над взаимодействием с кодом предыдущих версий языка Scala и Java-библиотеками, благодаря чему уже существующий код потребует лишь незначительных изменений.

Полное описание предложения можно найти по ссылке:
https://gist.github.com/abeln/9f79774bac111d99b3ae2cb9016a33e6


>>Click here to continue<<

Scala bin






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)