Especial significa que le brindan una funcionalidad que es imposible obtener de otra manera, por lo que tratan de forma especial al compilador. Ejemplos: 'DelayedInit' - convertir todo el código de inicialización a métodos principales, 'dinámicos' - apoderado de todos los métodos, etc.¿Dónde puedo encontrar la lista de todos los rasgos especiales en Scala?
Respuesta
En la actualidad, los únicos rasgos especiales yo sepa son DelayedInit
y Dynamic
.
Cualquier cosa que herede de estos rasgos también recibe un trato especial por parte del compilador, como con App
, cuyas subclases DelayedInit
.
Vale la pena señalar que cualquier rasgo de podría ser utilizado como marcador por alguna biblioteca, marco o complemento del compilador para "darle una funcionalidad que es imposible obtener de otra manera". Estos dos son los únicos rasgos que son especialmente reconocidos por el compilador predeterminado embargo.
Así como los rasgos marcadores, hay algunas anotaciones que reciben tratamiento especial, el scala.annotation
y scala.reflect
son buenos lugares para encontrar estos, también existe la @specialized
anotación en el paquete scala
y varios en los plugins del compilador (como continuaciones delimitados) .
También hay scala.Singleton
.
Es final trait
y no se puede usar normalmente mientras se escribe el código, pero todos los que usan algún singleton como object Foo
ya lo han usado de forma indirecta.
Singleton
es utilizado por el compilador para extender un producto único, por lo tanto:
scala> object Foo
defined module Foo
scala> Foo.isInstanceOf[Singleton]
res0: Boolean = true
- 1. ¿Dónde encontrar una lista de todos los eventos jQuery?
- 2. ¿Dónde puedo encontrar la lista de caracteres especiales de iOS "autoremplazables"?
- 3. ¿Dónde puedo encontrar una lista de consultas de medios CSS3 para todos los dispositivos comunes?
- 4. ¿Dónde puedo encontrar información sobre las variables especiales de Perl?
- 5. ¿Dónde puedo encontrar una lista de horarios?
- 6. ¿Dónde puedo encontrar una lista completa (!) De todos los eventos de Hibernate?
- 7. Anulación de los rasgos y los métodos abstractos en Scala
- 8. Rasgos vs. Paquetes en Scala
- 9. ¿Dónde puedo encontrar una lista de códigos de tecla?
- 10. Encontrar todos los controladores en la aplicación
- 11. ¿Dónde puedo encontrar una lista de frases en inglés?
- 12. ¿Dónde puedo encontrar una lista de bittorent dht bootstrap nodes?
- 13. ¿Dónde puedo encontrar los registros de IIS?
- 14. ¿Dónde puedo encontrar una explicación de todos los campos de la matriz de transformación?
- 15. Semántica de rasgos abstractos en Scala
- 16. Scala y Mockito con rasgos
- 17. ¿Dónde puedo obtener una lista de todos los países/ciudades para completar un cuadro de lista?
- 18. ¿Dónde puedo encontrar todos los objetos COM que se pueden crear en Powershell?
- 19. ¿Dónde puedo encontrar GACUtil?
- 20. Regex para eliminar todos los caracteres especiales de la cadena?
- 21. ¿Cómo puedo encontrar una lista de todos los uniformes en OpenGL es 2.0 vertex shader pro
- 22. ¿Dónde puedo encontrar una lista de las propiedades de Transformer.setOutputProperty?
- 23. ¿Dónde puedo encontrar una lista de códigos de salida "mysqldump"?
- 24. ¿Dónde puedo encontrar la implementación de XMLHttpRequest?
- 25. ¿Dónde puedo encontrar una lista de palabras de parada hebreas?
- 26. ¿Dónde puedo encontrar la lista completa de los ganadores del Premio Spirit of Delphi?
- 27. ¿Dónde puedo encontrar TableDiff.exe?
- 28. ¿Dónde puedo encontrar Microsoft.Build.Utilities.v3.5
- 29. ¿Dónde puedo encontrar WSDL.exe?
- 30. ¿Dónde puedo encontrar "j_security_check"?
un punto menor: DelayedInit es el rasgo "mágica", la aplicación solo lo utiliza. –
'App' es solo" mágico "por razones de rendimiento con respecto a la optimización de constructores en la JVM. Puedes crear fácilmente tu propio rasgo ejecutable dándole un método 'main (args: Array [String])': mira por ejemplo el rasgo '' Application' (obsoleto). –