Dans d'autres langages de haut niveau, vous pouvez utiliser la correspondance de modèle pour la surcharge de fonctions, par exemple dans Mathematica. Par exemple, vous pouvez écrire du code élégant sans instruction if, voici un exemple de ce que je veux dire:Comment est-ce que je peux surcharger des fonctions avec la correspondance de modèle dans Swift?
chanter Fibonacci:
fib[0|1] := 1
fib[n_Integer?Positive] := fib[n - 1] + fib[n - 2]
fib[n__] := fib /@ {n}
fib[n_] := "undefined"
Voici:
In[]:= fib[10]
Out[]= 89
In[]:= {fib[-2], fib["2"]}
Out[]= {"undefined", "undefined"}
In[]:= fib[1, 2, 3, 4, 5, 6, 7]
Out[]= {1, 2, 3, 5, 8, 13, 21}
Est-ce rapide ont des fonctionnalités de ce genre pour les arguments basés sur des motifs ou quelque chose comme ça?
S'il vous plaît rappelez-vous de marquer vos questions avec la langue. – Barmar
Merci @Barmar! Désolé, je suis un débutant, devrais-je publier cet article ailleurs? –
Non, c'est bien. Vous avez juste besoin de mettre 'swift' dans la liste des tags. Je l'ai déjà réparé pour vous. – Barmar