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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top