Elixir idiomatic - Fonction Paramètre Style
-
26-12-2019 - |
Question
dessine et la main les variables sont des listes.Je veux déplacer la carte supérieure du tirage au sort et l'ajouter à la main.Ceci est la fonction:
def pick_up_card(draw, hand) do
[new_card | new_draw ] = draw
{hand ++ [new_card], new_draw}
end
i pourrait la réécrire à une ligne plus courte en incluant la [tête |Tail] partie dans la liste des paramètres:
def pick_up_card([new_card | new_draw], hand) do
{hand ++ [new_card], new_draw}
end
Ce serait-il plus elixir idiomatique?Serait-il nuire à la lisibilité?J'imagine que le code serait plus facile à lire plus tard si la définition de la fonction avait le nom de la liste entrante plutôt qu'une tête | appel de la queue.
Est-ce une question de goût personnel, ou je suis de mieux sauvegarder cette ligne de code et collant la tête | appel de la queue dans la définition de la fonction?
La solution
À mon avis, il vaut mieux le mettre dans la liste des paramètres.Vous aimeriez probablement écrire une autre clause
def pick_up_card ([], _), faites: élever "rien à ramasser"
Dans un proche avenir, n'est-ce pas?:) ou soin d'autres cas spéciaux - il est donc préférable de le mettre dans l'en-tête dès le début.