Объект scala.adhocExtensions
@compileTimeOnly("`adhocExtensions` может использоваться только во время компиляции в операторах импорта")
object adhocExtensions
При импорте разрешаются имплицитные расширения неопределённых классов в других единицах компиляции.
Почему контролировать функцию? Имплицитные расширения обычно следует избегать, поскольку они обычно не могут полагаться на «внутренний» договор между классом и его расширениями. Только открытые классы должны указывать такой договор. Имплицитные расширения могут сломаться в будущих версиях расширяемого класса, так как расширяемый класс свободен изменять свою реализацию без ограничений внутренним договором.
Почему разрешать? Иногда имплицитное расширение может быть необходимым, например, при моделировании класса в фреймворке тестирования или для обхода ошибки или отсутствующей функции в исходном классе. Тем не менее, такие расширения должны быть ограничены по объёму и чётко документированы. Вот почему для них требуется импорт языка.
| Супертипы | |
|---|---|
| Тип «я» |
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/runtime/stdLibPatches/language$$adhocExtensions$.html