65 votes

Ruby : unless vs if not

Je me retrouve à préférer if not plutôt que unless . Existe-t-il une manière correcte d'écrire ce genre de condition ? Que pensent les gens en général de unless ?

1 votes

Duplicata possible de Différence - à moins que/si

0 votes

L'autre demande la différence, celle-ci demande une directive de style.

0 votes

L'autre dit "quand l'utiliser", ce que j'ai interprété comme un style.

51voto

derp Points 1627

J'espère que cela vous aidera : https://github.com/rubocop-hq/ruby-style-guide#if-vs-unless

Préférer unless à if pour les conditions négatives (ou le flux de contrôle ||).

# bad
do_something if !some_condition

# bad
do_something if not some_condition

# good
do_something unless some_condition

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

39voto

jefflunt Points 20244

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

Donc, je vais utiliser

unless blah_blah
  ...
end

mais s'il y a une autre condition, 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 un certain temps pour m'habituer à unless . Aujourd'hui, je le préfère dans tous les cas où la lecture à haute voix semble naturelle.

Je suis aussi un fan de l'utilisation d'une fin de phrase. unless

increment_by_one unless max_value_reached J'utilise ces noms de méthodes/variables à titre d'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

11voto

Simone Carletti Points 77653

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

D'autre part, l'expression "à moins que" est largement utilisée en cas de condition unique et si elle semble lisible.

Voir aussi n'a de sens avec Ruby que si pour d'autres suggestions concernant le style de codage à moins que.

0 votes

Je mettrais en évidence "au cas où il y aurait une seule condition et si cela semble lisible" . La lisibilité est le roi !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X