2010-08-26 7 views
5

Volevo chiedere se esiste una lista di annotazioni per Scala 2.8.0? Mi sono imbattuto in @inline e @specialized ma sarebbe bello se ci fosse una lista completa che spiegasse anche cosa fanno esattamente.Elenco annotazioni Scala?

Se un elenco di questo tipo non esiste: ci sono delle annotazioni con cui si dovrebbe avere familiarità?

risposta

7

Tour di Scala Annotazioni: http://www.scala-lang.org/node/106

Internals di Scala NOTE: http://www.scala-lang.org/sid/5

Il tour non è aggiornato ora. Ci sono molte altre annotazioni incorporate in Scala adesso.

Il sottoclassi noti sezione del scaladoc per scala.annotation.Annotation fornisce un elenco abbastanza significativa (più sotto è come di 2.12.1):

serialVersionUID, ClassfileAnnotation, StaticAnnotation, TypeConstraint, compileTimeOnly, elidable, implicitAmbiguous, implicitNotFound, beanGetter, beanSetter, companionClass, companionMethod, companionObject, field, getter, languageFeature, param, setter, strictfp, switch, tailrec, unscheckedStable, unscheckedVariance, unspecialized, varargs, BeanDescription, BeanDisplayName, BeanInfoSkip, BeanProperty, BooleanBeanProperty, deprecato, de precatedInheritance, deprecatedName, deprecatedOverriding, in linea, nativo, noinline, specializzata, tiri, transitoria, incontrollato, volatile, BeanInfo, a distanza

FONTE: http://www.scala-lang.org/api/current/scala/annotation/Annotation.html

+2

Il tour è un po 'fuori dai dati. per esempio. nessun documento '@ switch'. –

+0

@JosephLust hai ragione. Ho preso nota delle carenze del tour e ho aggiunto un riferimento allo Scaladoc con un estratto. –

1

Per rispondere alla mia domanda:

Il funzionario "The Scala Language Specification Version 2.8" contiene anche una bella lista di annotazioni con qualche spiegazione. (Capitolo 11, pagina 133 sgg.)

Anche se ad esempio @inline non è elencato lì. Quindi sembra non essere completo neanche.

2

È abbastanza facile ottenere un elenco di tutte le annotazioni Scala. Basta andare su http://www.scala-lang.org/api/current/scala/annotation/Annotation.html e fare clic su "Sottoclassi conosciute". Oggi, ho

BeanDescription, BeanDisplayName, BeanInfo, BeanInfoSkip, BeanProperty, BooleanBeanProperty, ClassfileAnnotation, serialVersionUID, StaticAnnotation, TypeConstraint, beanGetter, beanSetter, clonabile, cpsParam, deprecato, deprecatedName, elidable, campo, getter, implicitNotFound, in linea, nativo, noinline, param, a distanza, serializzabile, setter, specializzata, strictf, interruttore, tailrec, tiri, transitoria, incontrollato, uncheckedStable, uncheckedVariance, varargs, volatile