usar simbolo que lista funcion elemento declarar crear contadores como arreglo agregar ruby semicolon

simbolo - ruby puts hash



¿Puedes usar punto y coma en Ruby? (6)

Sí, los puntos y comas se pueden usar como separadores de declaraciones en Ruby.

Aunque mi estilo típico (y la mayoría del código que veo) pone una línea de código en cada línea, entonces el uso de ; es bastante innecesario

Al aprender Ruby, noté que en todos los ejemplos no hay punto y coma. Soy consciente de que esto está perfectamente bien siempre y cuando cada declaración esté en su propia línea. Pero lo que me pregunto es, ¿ puedes usar punto y coma en Ruby?

¡Gracias por adelantado!



Como nota al margen, es útil usar punto y coma en tu (j) sesión IRB para evitar imprimir un valor de expresión ridículamente largo, por ejemplo

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

vs

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

Agradable especialmente para tus llamadas a MyBigORMObject.find_all.


La única situación en la que me he encontrado con que el punto y coma es útil es cuando declaro métodos de alias para attr_reader.

Considera el siguiente código:

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

Al usar puntos y comas, podemos reducir esto 3 líneas:

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

Para mí, esto no elimina la legibilidad.


Semicolon: sí.

irb(main):018:0> x = 1; c = 0 => 0 irb(main):019:0> x => 1 irb(main):020:0> c => 0

Incluso puede ejecutar múltiples comandos separados por punto y coma en un bucle de una sola línea

irb(main):021:0> (c += x; x += 1) while x < 10 => nil irb(main):022:0> x => 10 irb(main):023:0> c => 45


Puede ser interesante usar punto y coma para preservar la sintaxis del bloque como en este ejemplo:

a = [2, 3 , 1, 2, 3].reduce(Hash.new(0)) { |h, num| h[num] += 1; h }

Usted mantiene una línea de código.