web-dev-qa-db-fra.com

Ruby: à moins que vs sinon

Je préfère if not plutôt que unless. Existe-t-il un moyen approprié d'écrire ce genre de condition? Que pensent généralement les gens de unless?

49
NullVoxPopuli

J'espère que ceci vous aide:
https://github.com/bbatsov/Ruby-style-guide

Je suis personnellement d'accord avec ce qui y est écrit en choisissant unless something plus de if !something pour les modificateurs et les simples et quand il y a else préférez if.

38
derp

J'utilise unless à chaque fois, sauf lorsqu'il y a une clause else.

Je vais donc utiliser

unless blah_blah
  ...
end

mais s'il y a une condition else, j'utiliserai if not (ou if !)

if !blah_blah
 ...
else
 ...
end

Après avoir utilisé if ! pendant des années et des années et des années, il m'a fallu du temps pour m'habituer à unless. De nos jours, je le préfère dans tous les cas où le lire à haute voix semble naturel.

Je suis également un fan de l'utilisation d'un unless

increment_by_one unless max_value_reached J'utilise ces noms de méthode/variable comme exemple de lisibilité - la structure du code devrait fondamentalement suivre ce modèle, à mon avis.

Dans un sens plus large, la structure devrait être: take_action unless exception_applies

27
jefflunt

if not condition est rarement utilisé. Ruby (venant généralement d'autres langues) ont tendance à préférer l'utilisation if !condition.

De l'autre côté, à moins qu'il ne soit largement utilisé dans le cas où il y a une seule condition et si cela semble lisible.

Voir aussi logique avec Ruby sauf) pour d'autres suggestions sur le style de codage sauf.

10
Simone Carletti