Comme vous pouvez le voir dans les réponses, il est possible de définir une méthode de différentes manières sur une seule ligne, mais la question est, devriez-vous? Toute définition doit être rédigée de manière claire et nette pour des raisons de maintenance et de lisibilité, donc si la ligne unique devient lourde ou déroutante, étalez-la. Certains langages semblent encourager le codage laconique comme un moyen d'être à l'écoute du code, mais le style de codage Ruby encourage l'élégance, la lisibilité et la maintenabilité au-dessus de la rigueur. Accomplissez les trois premiers et nous nous inclinerons devant vous.
the Tin Man
Réponses:
102
Vous pouvez éviter d'utiliser des points-virgules si vous utilisez des parenthèses:
C'est plus long que d'utiliser des points-virgules ...?
Apollys soutient Monica le
73
Donnez simplement la nouvelle réponse complète:
En général, évitez les méthodes monolignes. Bien qu'ils soient assez populaires dans la nature, il existe quelques particularités dans leur syntaxe de définition qui rendent leur utilisation indésirable. En tout cas, il ne devrait pas y avoir
plus d'une expression dans une méthode sur une seule ligne .
# baddef too_much; something; something_else;end# okish - notice that the first ; is requireddef no_braces_method; body end# okish - notice that the second ; is optionaldef no_braces_method; body;end# okish - valid syntax, but no ; make it kind of hard to readdef some_method() body end# gooddef some_method
bodyend
Les méthodes à corps vide constituent une exception à la règle.
Dans Ruby, la valeur de retour d'une méthode est la valeur renvoyée par la dernière instruction. Vous n'avez pas besoin de l' returnici car ce n'est pas une clause de garde.
Damien
1
Voté parce que, bien que cela ne soit pas nécessaire , le returnpeut ajouter de la lisibilité pour les moins versés (ou familiers avec) Ruby. C'est une de ces choses YMMV ...
Réponses:
Vous pouvez éviter d'utiliser des points-virgules si vous utilisez des parenthèses:
la source
Donnez simplement la nouvelle réponse complète:
En général, évitez les méthodes monolignes. Bien qu'ils soient assez populaires dans la nature, il existe quelques particularités dans leur syntaxe de définition qui rendent leur utilisation indésirable. En tout cas, il ne devrait pas y avoir plus d'une expression dans une méthode sur une seule ligne .
Les méthodes à corps vide constituent une exception à la règle.
De bbatsov / ruby-style-guide .
la source
Le point-virgule est le terminateur d'instruction en ligne pour Ruby
Ou vous pouvez utiliser la
define_method
méthode. (Edit: celui-ci est obsolète dans ruby 1.9)la source
Autrement:
Peut être utilisé si vous ne souhaitez pas entrer de nouvelle portée pour la méthode lors de sa définition.
la source
define_method
a été "privatisé" dans Ruby 1.9Encore une autre façon:
la source
return
ici car ce n'est pas une clause de garde.return
peut ajouter de la lisibilité pour les moins versés (ou familiers avec) Ruby. C'est une de ces choses YMMV ...