E 'possibile in Scala definire MyAlias[A]
come alias per MyClass[String, A]
. Ad esempio, MyAlias[Int]
fare riferimento a Map[String, Int]
.Alias di classe in scala
10
A
risposta
18
Si noti che Map
è un trait
, non un class
.
È ancora possibile alias utilizzando la parola chiave type
:
type StringMap[A] = Map[String, A]
val myMap: StringMap[Int] = Map("a" -> 1)
Questo può essere fatto nell'ambito di una definizione class
, object
o trait
(e del perimetro di qualsiasi metodo o espressione).
A volte si desidera che l'alias sia privato per il suo ambito di dichiarazione, puramente per comodità del codice di implementazione. Se si desidera che il tipo da essere utilizzabile in generale, Package Objects tornare utile:
package object mypackage {
type StringMap[A] = Map[String, A]
}
Perché Map
è un tratto (e oggetto associato associato) e non una classe, non sarà in grado di utilizzare direttamente per creare casi:
val myMap = new StringMap[Int]
// error: trait Map is abstract; cannot be instantiated
Se trasformare un classe, però, è ancora possibile utilizzare la parola chiave new
:
type StringHashMap[A] = HashMap[String, A]
val myMap = new StringHashMap[Int]
Problemi correlati
- 1. Principiante: alias di tipo Scala in Scala 2.10?
- 2. Errore alias tipo ricorsivo Scala
- 3. alias classe o un metodo in Java
- 4. Scala tipo alias per le annotazioni
- 5. Typedef (alias) di una classe generica
- 6. Scala, l'importazione di classe
- 7. La classe di GroovyX.metaClass.getProperty in scala
- 8. riferimenti di classe avanti in Scala?
- 9. Alias di tipo Scala incluso oggetto companion [principiante]
- 10. Avviso di classe compagno Scala
- 11. Alias di tipo Scala interrompe la compatibilità del tipo
- 12. Come si dichiara un alias di tipo in un costruttore di scala?
- 13. Scala valore classe di aggiornamento
- 14. Template visibilità alias nella classe annidata
- 15. Gerarchia classe case Scala
- 16. Come accedere ad un metodo statico Java da Scala dato un alias di tipo per quella classe risiede in
- 17. Classe caso Scala Tupled
- 18. Scala istruzione import in alto e dentro classe scala
- 19. Come alias un metodo di classe nel modello di rails?
- 20. xtype invece di alias nella definizione di classe
- 21. come alias nome classe in css o sass
- 22. Definizione di un alias per una classe con Rasoio
- 23. Scala: finale statico pubblico in una classe
- 24. Getter e setter Scala in classe Java
- 25. "classe A succede con classe B" significa in riferimento Scala?
- 26. Impossibile usare la classe Scala in Java
- 27. Ottieni il nome alias di una classe importata
- 28. Creazione di un tipo alias per una classe template
- 29. Trova membri sintetici in campi di classe in Scala
- 30. Scala put metodo in tratto o in caso di classe?
Grazie, mappa era un cattivo esempio, volevo dire (caso) di classe – iwalktheline