77 votes

Pouvez-vous utiliser des points-virgules en Ruby?

En apprenant Ruby, j'ai remarqué que dans tous les exemples, il n'y avait pas de point-virgule. Je suis conscient que cela va parfaitement tant que chaque déclaration est sur sa propre ligne. Mais je me demande si vous pouvez utiliser des points-virgules en Ruby.

Merci d'avance!

101voto

David Brown Points 14365

Oui.

Ruby ne nous oblige pas à utiliser un caractère pour séparer des commandes, sauf si nous voulons enchaîner plusieurs instructions sur une seule ligne. Dans ce cas, un point-virgule (;) est utilisé comme séparateur.

Source: http://articles.sitepoint.com/article/learn-ruby-on-rails/2

37voto

Bill Dueber Points 1526

En remarque, il est utile d’utiliser des points-virgules dans votre session (j) irb pour éviter d’imprimer une valeur d’expression ridiculement longue, par exemple

 irb[0]> x = (1..1000000000).to_a
[printout out the whole array]
 

contre

 irb[0]> x = (1..100000000).to_a; 1
1
 

Sympa surtout pour vos appels MyBigORMObject.find_all.

3voto

ryan Points 2113

La seule situation dans laquelle les points-virgules sont utiles concerne la déclaration de méthodes d'alias pour attr_reader.

Considérons le code suivant:

 attr_reader :property1_enabled
attr_reader :property2_enabled
attr_reader :property3_enabled

alias_method :property1_enabled?, :property1_enabled
alias_method :property2_enabled?, :property2_enabled
alias_method :property3_enabled?, :property3_enabled
 

En utilisant des points-virgules, nous pouvons réduire ce nombre de 3 lignes:

 attr_reader :property1_enabled; alias_method :property1_enabled?, :property1_enabled
attr_reader :property2_enabled; alias_method :property2_enabled?, :property2_enabled
attr_reader :property3_enabled; alias_method :property3_enabled?, :property3_enabled
 

Pour moi, cela n'enlève pas vraiment la lisibilité.

3voto

birryree Points 29165

Oui, les points-virgules peuvent être utilisés comme séparateurs d'instructions en Ruby.

Bien que mon style typique (et la plupart du code que je vois) mette une ligne de code sur chaque ligne, l'utilisation de ; est donc plutôt inutile.

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