Cas des Classes avec des champs optionnels en Scala
Par exemple, j'ai cette classe de cas:
case class Student (firstName : String, lastName : String)
Si j'utilise cette classe de cas, est-il possible que la fourniture de données pour les champs à l'intérieur de la classe de cas sont en option? Par exemple, je vais le faire:
val student = new Student(firstName = "Foo")
Merci!
- Avec des classes de cas, vous n'avez pas besoin d'utiliser "nouveaux". C'est normalement à gauche.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez juste de rater le second paramètre sans un défaut d'information, je vous suggère d'utiliser un
Option
.Maintenant vous pouvez créer des instances de cette façon:
Pour le rendre utilisable comme vous le souhaitiez, je vais ajouter un implicite:
Maintenant, vous pouvez appeler ces façons:
Proximité:
Une autre possibilité est que partiellement appliquée de la fonction:
Et pour être complet, vous pouvez créer des objets par défaut, puis de changer certaines de champ:
Je voudrais le voir de deux façons c'est fait normalement.
1. les paramètres par défaut
2. alternative constructeurs
Qui est mieux dépend légèrement sur les circonstances. Ce dernier vous donne plus de liberté: vous pouvez faire n'importe quel paramètre(s) en option, ou même de changer leur ordre (non recommandé). Les paramètres par défaut doivent toujours être à la fin de la liste des paramètres, je pense. Vous pouvez également combiner ces deux méthodes.
Remarque: à l'intérieur de la rechange constructeurs, vous devez
new
à point, le compilateur de la réelle constructeur. Normalementnew
n'est pas utilisé avec des classes de cas.