Como puede ver en las respuestas, es posible definir un método de diferentes maneras en una sola línea, pero la pregunta es, ¿debería hacerlo? Cualquier definición debe escribirse de manera clara y limpia por razones de mantenimiento y legibilidad, por lo que si la línea única se vuelve difícil de manejar o confusa, extiéndala. Algunos lenguajes parecen fomentar la codificación concisa como una forma de ser estudiosos de código, pero el estilo de codificación Ruby fomenta la elegancia, la legibilidad y la facilidad de mantenimiento por encima de la estudios. Cumpla los tres primeros y nos inclinaremos ante usted.
the Tin Man
Respuestas:
102
Puede evitar la necesidad de usar punto y coma si usa paréntesis:
En general, evite los métodos de una sola línea. Aunque son algo populares en la naturaleza, hay algunas peculiaridades sobre su sintaxis de definición que hacen que su uso sea indeseable. En cualquier caso, no debería haber
más de una expresión en un método de una sola línea .
# 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
body
end
Una excepción a la regla son los métodos de cuerpo vacío.
En Ruby, el valor de retorno de un método es el valor devuelto por la última declaración. No necesita el returnaquí ya que no es una cláusula de protección.
Damien
1
Voto a favor porque, aunque no es necesario , returnpuede agregar legibilidad para aquellos menos versados (o familiarizados con) Ruby. Es una de esas cosas de YMMV ...
Respuestas:
Puede evitar la necesidad de usar punto y coma si usa paréntesis:
fuente
Simplemente dé la respuesta nueva y completa:
En general, evite los métodos de una sola línea. Aunque son algo populares en la naturaleza, hay algunas peculiaridades sobre su sintaxis de definición que hacen que su uso sea indeseable. En cualquier caso, no debería haber más de una expresión en un método de una sola línea .
Una excepción a la regla son los métodos de cuerpo vacío.
De bbatsov / ruby-style-guide .
fuente
El punto y coma es el terminador de instrucciones en línea para Ruby
O puedes usar el
define_method
método. (Editar: este está en desuso en ruby 1.9)fuente
De otra manera:
Puede usarse si no desea ingresar un nuevo alcance para el método mientras lo define.
fuente
define_method
ha sido "privatizado" en Ruby 1.9Otra forma más:
fuente
return
aquí ya que no es una cláusula de protección.return
puede agregar legibilidad para aquellos menos versados (o familiarizados con) Ruby. Es una de esas cosas de YMMV ...