Primordial Scala De Valeur De L'Énumération
Aussi loin que je peux dire, Scala a des définitions de la Valeur de l'Énumération de la classe de Valeur(Int), la Valeur(Chaîne de caractères), et la Valeur(Int, String).
Personne ne sait d'exemple pour la création d'une nouvelle Valeur de la sous-classe à l'appui d'un constructeur différent?
Par exemple, Si je veux créer une Énumération avec la Valeur(Int, String, String) des objets, comment pourrais-je le faire? Je voudrais que tous les autres avantages de l'utilisation de la classe d'Énumération.
Grâce.
Vous devez vous connecter pour publier un commentaire.
Les valeurs d'Énumération sont instance du Val de classe. Cette classe peut être prolongé et une méthode de fabrique peuvent être ajoutés.
My
de l'énumération, vous devez d'abord les importer avecimport My._
et ajouter le code suivant dans laMy
objet: ` Mon type = MyVal, de sorte que vous pouvez accéder à la x val.Fait en Scala Énumération est beaucoup plus simple dans ce sens que dans Java. Pour votre but, vous n'avez pas à sous-classe d'Énumération, ni sa Valeur, en quelque sorte, vous avez juste besoin d'instancier votre propre type de son compagnon, l'objet en tant que
val
. De cette façon, vous obtiendrez le familière modèle d'accès deval value:MyEnum = MyEnum.Value
comme vous l'aviez en Java, ce qui n'est pas possible dans l'exemple fourni par Thomas Jung. Là, vous aurezdef value:My.MyVal = MyEnum.Value
qui est un peu confus, car il me semble d'ailleurs tout le hackiness de la solution. Voici un exemple de ce que je propose:Vous trouverez ici un exemple plus compliqué: Scala Meilleures Pratiques: Trait à l'Héritage vs Énumération
Voici une autre approche plus simple:
Je préfère le faire par l'extension de la
Enumeration.Val
classe.Pour votre condition, je voudrais poster un extrait ci-dessous:
L'accès à des valeurs est comme ci-dessous: