Per scrivere in modo più conciso, piuttosto che fare questo:L'assegnazione è in una clausola condizionale di stile rubino buono?
test_value = method_call_that_might_return_nil()
if test_value
do_something_with test_value
end
Ho assegnando al condizionale:
if test_value = method_call_that_might_return_nil()
do_something_with test_value
end
È questo il cattivo stile? La sintassi ancora più concisa-:
do_something_with test_value if test_value = method_call_that_might_return_nil()
non è consentita, come discusso in another SO question, e rimarrà così a 1,9, secondo Matz (http://redmine.ruby-lang.org/issues/show/1141).
Data la possibile confusione di assegnazione e confronto, questo rende troppo difficile leggere il codice?
Penso che si debba tracciare una linea tra concisione e comprensibilità. Penso che al giorno d'oggi, dove dobbiamo conoscere diverse lingue, è una buona idea usare nuove fantastiche funzionalità di alcune lingue senza danneggiare la conoscenza del programmatore esistente. In qualità di programmatore esperto, perché dovrei aver bisogno di google tale adattabilità sintattica dalla lingua alla lingua? Preferirei passare il tempo a googling sul problema in questione. Ad esempio, come multithread in ruby. –
Rubocop e questa guida in stile rubino consiglia di evitarlo: https://github.com/bbatsov/ruby-style-guide – Rimian
Link alla parte specifica della guida di stile: https://github.com/bbatsov/ruby-style -guide # Assegnazione sicura -in-condizione –