@@ -5,7 +5,7 @@ scala3: true
55language : ru
66---
77
8- Захватывающая новая версия Scala 3 содержит множество улучшений и новых функций.
8+ Захватывающая новая версия Scala 3 содержит множество новых функций и улучшений .
99Здесь мы представляем вам краткий обзор наиболее важных изменений.
1010Если вы хотите копнуть глубже, то в вашем распоряжении несколько ссылок:
1111
@@ -18,17 +18,17 @@ language: ru
1818## Что нового Scala 3
1919Scala 3 — это полная переработка языка Scala.
2020По сути, многие аспекты системы типов были изменены, чтобы сделать их более последовательными.
21- Хотя эта версия также приносит захватывающие новые функции (например, типы объединения),
21+ Хотя эта версия также приносит интересные новые функции (например, типы объединения),
2222в первую очередь это означает, что система типов становится (даже) малозаметнее на вашем пути,
23- и, например, [ вывод типов] [ type-inference ] и перегрузка значительно улучшаются.
23+ и, например, [ вывод типов] [ type-inference ] с перегрузкой значительно улучшаются.
2424
2525### Новое и яркое: синтаксис
2626Помимо многих (незначительных) чисток, синтаксис Scala 3 предлагает следующие улучшения:
2727
2828- Новый "тихий" синтаксис для структур управления, таких как ` if ` , ` while ` и ` for ` ([ новый синтаксис управления] [ syntax-control ] )
29- - Ключевое слово ` new ` является необязательным (_ например_ [ для создания экземпляров] [ creator ] )
29+ - Ключевое слово ` new ` теперь является необязательным (_ например_ [ для создания экземпляров] [ creator ] )
3030- [ Опциональные фигурные скобки] [ syntax-indentation ] поддерживающие стиль программирования, не отвлекающий внимание и чувствительный к отступам
31- - Изменение [ типового уровня подстановочных знаков] [ syntax-wildcard ] с ` _ ` на ` ? ` .
31+ - Изменение [ подстановочных знаков типа ] [ syntax-wildcard ] с ` _ ` на ` ? ` .
3232- Имплициты (и их синтаксис) были [ значительно переработаны] [ implicits ] .
3333
3434### Последовательное: контекстуальные абстракции
@@ -46,7 +46,7 @@ Scala 3 предлагает несколько специализированн
4646
4747- ** Абстрагирование контекстной информации** . [ Using предложения] [ contextual-using ] позволяют программистам абстрагироваться от информации,
4848 которая доступна в контексте вызова и должна передаваться неявно.
49- В качестве улучшения по сравнению с неявными элементами в Scala 2 предложения _ using_ могут указываться по типу,
49+ В качестве улучшения по сравнению с имплицитами в Scala 2 предложения _ using_ могут указываться по типу,
5050 освобождая сигнатуры функций от имен переменных, если на них не ссылаются явно.
5151
5252- ** Предоставление экземпляров классов типов** . [ Экземпляры given] [ contextual-givens ] позволяют программистам определять
@@ -76,7 +76,7 @@ Scala 3 предлагает несколько специализированн
7676
7777- ** Типы пересечения и объединения** . Основание системы типов на новом фундаменте привело к введению новых функций системы типов:
7878 экземпляры [ типов-пересечений] [ types-intersection ] , например ` A & B ` , являются экземплярами обоих типов ` A ` и ` B ` .
79- Экземпляры типов объединения, например ` A | B ` , являются экземплярами либо ` A ` , либо ` B ` .
79+ Экземпляры [ типов объединения] [ types-union ] , например ` A | B ` , являются экземплярами либо ` A ` , либо ` B ` .
8080 Обе конструкции позволяют программистам гибко выражать ограничения типов вне иерархии наследования.
8181
8282- ** Зависимые типы функций** . Scala 2 уже позволяла возвращаемым типам зависеть от (значения) аргументов.
@@ -105,7 +105,7 @@ Scala всегда была на границе между функционал
105105В то же время следующие новые функции позволяют создавать хорошо структурированные _ объектно-ориентированные проекты_
106106и поддерживают best practices.
107107
108- - ** Передайте это ** . Трейты становятся ближе к классам и теперь также могут принимать [ параметры] [ oo-trait-parameters ] ,
108+ - ** Передача параметров ** . Трейты становятся ближе к классам и теперь также могут принимать [ параметры] [ oo-trait-parameters ] ,
109109 что делает их еще более мощным средством модульной декомпозиции программного обеспечения.
110110- ** Планирование расширения** . Наследование классов, которые не предназначены для расширения,
111111 является давней проблемой объектно-ориентированного проектирования.
@@ -119,7 +119,7 @@ Scala всегда была на границе между функционал
119119 [ явное значение null] [ oo-explicit-null ] выводит ` null ` из иерархии типов, помогая статически отлавливать ошибки;
120120 дополнительные проверки для [ безопасной инициализации] [ oo-safe-init ] обнаруживают попытки доступа к неинициализированным объектам.
121121
122- ### Batteries Included : метапрограммирование
122+ ### Зарядка в комплекте : метапрограммирование
123123В то время как макросы в Scala 2 были только экспериментальной функцией,
124124Scala 3 поставляется с мощным арсеналом инструментов для метапрограммирования.
125125[ Учебник по макросам] ({% link _ overviews/scala3-macros/tutorial/index.md %}) содержит подробную информацию о различных возможностях.
0 commit comments