E 'davvero bello essere in grado di scrivereRuby double pipe assignment con block/proc/lambda?
@foo ||= "bar_default"
o
@foo ||= myobject.bar(args)
ma ho cercato di vedere se c'è un modo per scrivere qualcosa di simile
@foo ||= do
myobject.attr = new_val
myobject.other_attr = other_new_val
myobject.bar(args)
end
approssimativamente equivoco in codice effettivamente funzionale a qualcosa come
@foo = if [email protected]?
@foo
else
myobject.attr = new_val
myobject.other_attr = other_new_val
myobject.bar(args)
end
E suppongo che potrei scrivere il mio metodo globale come "getblock" per avvolgere e restituire il risultato di qualsiasi blocco generale, ma mi chiedo se esiste già un modo integrato per farlo.
È tutto thread-safe? – mlt