В настоящее время единственными особыми чертами, которые мне известны, являются DelayedInit
и Dynamic
.
Все, что унаследовано от этих признаков, также получает специальную обработку от компилятора, как с App
, который подклассы DelayedInit
.
Стоит отметить, что любая черта потенциально может использоваться в качестве маркера некоторыми библиотеками, фреймворками или плагином компилятора, чтобы «дать вам функциональность, которую невозможно получить иначе». Эти две черты являются единственными чертами, которые специально распознаются компилятором по умолчанию .
Помимо признаков маркеров, есть некоторые аннотации, которые обрабатываются специально, scala.annotation
и scala.reflect
- хорошие места для их поиска, также есть аннотация @specialized
в пакете scala
и несколько в компиляторе. плагины (такие как продолжение с разделителями).