Esiste qualcosa equivalente alla notevole funzione di SomeClass.metaClass.getProperty di Groovy in scala? Ciò sarebbe molto utile per creare linguaggi specifici di dominio. Ad esempio, potrei quindi dire: val x = SomeClass(); x.arbitraryPropertyName
anziché x.get("arbitraryPropertyName")
o x("arbitraryPropertyName")
.La classe di GroovyX.metaClass.getProperty in scala
5
A
risposta
9
Dalla descrizione, questa funzione suona come Dynamic
di Scala. Da Scaladoc,
Un tratto di contrassegno che consente invocazioni dinamiche. Le istanze x di questo tratto di consentono chiamate x.meth (args) per meth dei nomi di metodi arbitrari e argomenti di argomenti con argomenti . Se una chiamata non è supportata nativamente da x, è riscritta in x.applyDynamic ("meth", args).
Cioè, se la classe estende Dynamic
, poi chiama la forma x.arbitraryPropertyName
ottenere tradotto in x.applyDynamic("arbitraryPropertyName")
, e, naturalmente, si arriva a definire il comportamento di applyDynamic
.
Problemi correlati
- 1. Impossibile usare la classe Scala in Java
- 2. Alias di classe in scala
- 3. Scala, l'importazione di classe
- 4. Come utilizzare la classe implicita di Scala in Java
- 5. Avviso di classe compagno Scala
- 6. Impossibile creare la classe Scala su IntelliJ
- 7. riferimenti di classe avanti in Scala?
- 8. Scala valore classe di aggiornamento
- 9. Dovrei preferire la classe sealed o Enumeration in Scala?
- 10. Quali sono le differenze tra la classe finale e la classe sigillata in Scala?
- 11. Classe caso Scala Tupled
- 12. Scala istruzione import in alto e dentro classe scala
- 13. Gerarchia classe case Scala
- 14. Scala classe caso con la funzione di parametri
- 15. "classe A succede con classe B" significa in riferimento Scala?
- 16. Getter e setter Scala in classe Java
- 17. Scala: finale statico pubblico in una classe
- 18. Trova membri sintetici in campi di classe in Scala
- 19. Scala put metodo in tratto o in caso di classe?
- 20. Scala Funzione contro dicotomia classe
- 21. Modellazione con classe caso Scala
- 22. In Scala, combina metodi di oggetti come metodi di classe
- 23. Scala: vincolo sul tipo di classe generico
- 24. Intellij Scala definizione di classe formattazione
- 25. La scala di timer Erlang è in scala?
- 26. NoClassDefFoundError che utilizza la classe Scala da Java
- 27. Leggi l'oggetto classe caso da una stringa in Scala (qualcosa come la classe di lettura "di lettura" di Haskell)
- 28. Riferendosi al tipo di una classe interna in Scala
- 29. Utilizzare la scala di registro d3 anziché la scala lineare
- 30. Utilizzare le variabili di classe come costanti in Scala