Spec-Zone.ru › Scala 3.1

Объект scala.experimental

Исходный код

объект experimental

Объект experimental содержит функции, известные своей нестабильной API или поведением, которое может измениться в будущих версиях.

Экспериментальные функции могут претерпевать изменения API в будущих версиях, поэтому производственный код не должен на них полагаться.

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

Супертипы
класс Object
трейт Matchable
класс Any
Тип «я»
experimental.type

Классы

Исходный код@compileTimeOnly("`erasedDefinitions` может использоваться только во время компиляции в операторах импорта")
объект erasedDefinitions

Экспериментальная поддержка модификатора erased

См. также

https://dotty.epfl.ch/docs/reference/experimental/erased-defs

Исходный код@compileTimeOnly("`fewerBraces` может использоваться только во время компиляции в операторах импорта")
объект fewerBraces

Экспериментальная поддержка использования отступов для аргументов

Исходный код@compileTimeOnly("`genericNumberLiterals` может использоваться только во время компиляции в операторах импорта")
объект genericNumberLiterals

Экспериментальная поддержка универсальных числовых литералов.

См. также

https://dotty.epfl.ch/docs/reference/changed-features/numeric-literals

Исходный код@compileTimeOnly("`namedTypeArguments` может использоваться только во время компиляции в операторах импорта")
объект namedTypeArguments

Экспериментальная поддержка именованных аргументов типа.

См. также

https://dotty.epfl.ch/docs/reference/other-new-features/named-typeargs

Исходный код@compileTimeOnly("`saferExceptions` может использоваться только во время компиляции в операторах импорта")
объект saferExceptions

Экспериментальная поддержка возможностей проверки типов исключений

См. также

https://dotty.epfl.ch/docs/reference/experimental/canthrow

Неявные параметры

Исходный код
неявный ленивый val macros: macros

Только при включении этой функции разрешены определения макросов. Если macros не включена, определения макросов будут отклоняться компилятором.

Реализации и применения макросов не регулируются этой языковой функцией; они могут использоваться где угодно.

Зачем вводить эту функцию? Макросы обещают сделать язык более регулярным, заменяя специальные конструкции языка общей мощной возможностью абстракции, которая может их выразить. Макросы также являются более дисциплинированной и мощной заменой для плагинов компилятора.

Почему контролировать это? Из-за своей мощи макросы могут привести к коду, который трудно отлаживать и понимать.

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/language$$experimental$.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API