Scala 3, последняя версия объектно-ориентированного программирования, функциональный язык со средой выполнения JVM и JavaScript, теперь доступна как производственная версия. Обновление, которое в проекте описывается как «капитальный ремонт», включает новую систему типов и улучшения синтаксиса.

Производственный выпуск Scala 3 был представлен 14 мая, после этапа выпуска кандидатов, который начался 17 февраля. Среди улучшений, отмеченных в выпуске, – новый «тихий» синтаксис для управляющих структур, таких как if, while и for.

[ Also on InfoWorld: JDK 17: The new features in Java 17 ]

Scala имеет среды выполнения как JVM, так и JavaScript и позиционируется для использования при создании высокопроизводительных систем с доступом к экосистемам библиотек. Инструкции по загрузке Scala 3 можно найти здесь.

Другие улучшения синтаксиса в Scala 3:

  • Дополнительные подтяжки которые поддерживают стиль программирования без отвлекающих факторов и с учетом отступов.
  • В new ключевое слово теперь необязательно.
  • Подстановочные знаки уровня типа были изменены с _ к ?.
  • Имплициты и их синтаксис были сильно пересмотрены.

Новые языковые функции в Scala 3:

  • В улучшении по сравнению с неявными Scala 2 предложения using можно указывать по типу, освобождая сигнатуры функций от имен переменных терминов, которые никогда не упоминаются явно.
  • Данные экземпляры позволяют программистам определять каноническое значение определенного типа, делая программирование с помощью классов типов более простым, без утечки деталей реализации.
  • Методы расширения теперь прямо встроены в язык, для улучшения сообщений об ошибках и улучшенного вывода типов.
  • Неявные преобразования были переработаны как экземпляры класса-типа. Conversion.
  • Функция контекстных функций делает контекстные абстракции первоклассным гражданином. Они служат для авторов библиотек инструментом для выражения лаконичных предметно-ориентированных языков.
  • Если неявный параметр не может быть разрешен компилятором, предложения по импорту предоставлены, которые могут решить проблему.

Улучшения системы типов в Scala 3:

  • Перечисления или перечисления, были переработаны, чтобы хорошо сочетаться с классами case и сформировать новый стандарт для выражения алгебраических типов данных.
  • Псевдонимы непрозрачного типа позволяют разработчикам скрывать детали реализации без снижения производительности.
  • Типы пересечения и объединения позволяют выражать ограничения типов вне иерархии наследования.
  • Типы полиморфных функций может абстрагироваться от функций, которые принимают аргументы типа в дополнение к своим аргументам значения.
  • Лямбда-выражения типа – это функции уровня типа, которые могут передаваться как аргументы типа без необходимости определения вспомогательного типа.
  • Вместо кодирования вычислений на уровне типов с использованием неявного разрешения Scala 3 поддерживает соответствие по типам.

Возможности объектно-ориентированного программирования в Scala 3:

  • Черты характера приближаются к классам и теперь могут принимать параметры, что делает их более мощным инструментом для модульной декомпозиции программного обеспечения.
  • Открытые классы требуют, чтобы дизайнеры библиотеки помечали классы как открытые.
  • Служебные черты, реализующие поведение, иногда не должны быть частью предполагаемых типов. В Scala 3 эти свойства можно пометить как прозрачный, скрывая наследование от пользователя.
  • Явный нуль перемещает null из иерархии типов для статического обнаружения ошибок. Дополнительные проверки для безопасная инициализация найти доступ к унифицированным объектам.

Scala 3 также предлагает инструменты для метапрограммирования, включая операции времени компиляции, цитируемые блоки кода и встроенная функция что позволяет уменьшить значения и методы во время компиляции.

Авторские права © 2021 IDG Communications, Inc.


#Scala #знаменует #собой #полную #переработку #языка

Source link