Ne Scala ont des gardes?
J'ai commencé à apprendre scala il y a quelques jours et lors de l'apprentissage, je suis en comparant avec d'autres programmation fonctionnelle langues comme l' (Haskell, Erlang) que j'avais une certaine familiarité avec. Ne Scala a garde séquences?
Je suis allé à travers la correspondance de motif en Scala, mais est-il une notion équivalente à celle des gardes avec otherwise
et tout?
Vous devez vous connecter pour publier un commentaire.
Oui, il utilise le mot-clé
if
. À partir de la Des Classes De Cas section d'Un Tour de la Scala, à proximité de la-bas:(Ce qui n'est pas mentionné sur le Le Pattern Matching page, peut-être parce que le Tour est une présentation rapide.)
En Haskell,
otherwise
est en fait qu'une variable liée àTrue
. Afin de ne pas ajouter de la puissance à la notion de pattern matching. Vous pouvez obtenir tout simplement en répétant votre schéma initial sans la garde:Oui, il y a motif de gardes. Ils sont utilisés comme ceci:
Notez qu'au lieu d'un
otherwise
de la clause de sauvegarde, il vous suffit de spécifier le motif, sans un garde.n
dans ce cas et s'il vous plaît donner un exemple de travail de la ci-dessus.La réponse simple est non. Ce n'est pas exactement ce que vous cherchez (une correspondance exacte pour Haskell, syntaxe). Vous utilisez Scala "match" avec un garde, et de fournir une wild card, comme:
Je suis tombé sur ce billet à regarder la façon d'appliquer les gardes de matches avec plusieurs arguments, il n'est pas vraiment intuitif, je suis donc l'ajout d'un hasard ici.