Puis-je nom d'un n-uplet (définir une structure?) en Scala 2.8?
Il n'est pas très bon pour moi de toujours répéter une ligne de long tuple définition à chaque fois que j'en ai besoin. Puis-je juste le nom et l'utiliser comme un type de nom? Serait bien de citer ses champs, au lieu d'utiliser ._1, ._2 etc.
Vous devez vous connecter pour publier un commentaire.
Concernant votre première question, vous pouvez tout simplement utiliser un alias de type:
Et, bien sûr, la Scala est un langage orienté-objet, donc en ce qui concerne votre deuxième sur la façon de se spécialiser un tuple, le mot magique est héritage:
Que c'est. La classe n'a même pas besoin d'un corps.
Noter, cependant, que l'héritage de classes de cas (qui
Tuple2
est), est obsolète et peut être rejetés dans l'avenir. Voici le message d'avertissement du compilateur que vous obtenez pour le ci-dessus la définition de la classe:Type d'alias est très bien pour donner un nom à votre Tuple, mais essayez d'utiliser une classe de cas de la place. Vous serez en mesure d'utiliser des paramètres nommés
Exemple avec n-uplet:
Avec une classe de cas:
Voici une solution qui crée un alias de type et d'une fabrique d'objets.
Cependant, comme d'autres l'ont mentionné, vous devriez probablement juste de créer une classe de cas.
Bien que, comme d'autres l'ont dit, explicite (cas) les classes sont les meilleurs dans le sens général.
Cependant pour localiser les scénarios de ce que vous pouvez faire est d'utiliser la tuple extracteur pour améliorer la lisibilité du code:
Donné une méthode retournant un n-uplet: