el fin de escribir de manera más concisa, en lugar de hacer esto:¿La asignación en una cláusula condicional es de buen estilo ruby?
test_value = method_call_that_might_return_nil()
if test_value
do_something_with test_value
end
He estado asignando en condicional:
if test_value = method_call_that_might_return_nil()
do_something_with test_value
end
¿Es esta mal estilo? La sintaxis aún-más-concisa:
do_something_with test_value if test_value = method_call_that_might_return_nil()
no está permitido, como se ha discutido in another SO question, y permanecerá así en 1,9, de acuerdo con Matz (http://redmine.ruby-lang.org/issues/show/1141).
Dada la posible confusión de asignación y comparación, ¿esto hace que sea demasiado difícil leer el código?
Creo que se debe trazar una línea entre la concisión y la comprensibilidad. Creo que en el tiempo de hoy, donde debemos conocer varios idiomas diferentes, es una buena idea usar nuevas características geniales de ciertos idiomas sin dañar el conocimiento existente de los programadores. Como programador experto, ¿por qué debería tener la necesidad de buscar en Google tal idoneidad sintáctica de un idioma a otro? Preferiría pasar más tiempo buscando en Google el problema en cuestión. Por ejemplo, cómo multihilo en ruby. –
Rubocop y esta guía de estilo de rubí recomiendan evitarla: https://github.com/bbatsov/ruby-style-guide – Rimian
Enlace a la parte específica de la guía de estilo: https://github.com/bbatsov/ruby-style -guide # safe-assignment-in-condition –