OBlok/proc/lambda ile Ruby çift boru ataması?
@foo ||= "bar_default"
veya
@foo ||= myobject.bar(args)
dışarı yazabilmek için gerçekten güzel ama
@foo ||= do
myobject.attr = new_val
myobject.other_attr = other_new_val
myobject.bar(args)
end
gibi bir şey yazmak için bir yol olup olmadığını görmek için aradım aslında işlevsel kodda yaklaşık olarak eşdeğerli olarak
@foo = if [email protected]?
@foo
else
myobject.attr = new_val
myobject.other_attr = other_new_val
myobject.bar(args)
end
Ve sanırım herhangi bir genel bloğun sonucunu sarmak ve geri döndürmek için "getblock" gibi kendi global yöntemimi yazabilirim, ama bunu yapmak için zaten yerleşik bir yol olup olmadığını merak ediyorum.
@foo ||= begin
# any statements here
end
ya da belki ayrı bir yöntem haline bloğun içeriğini faktoring düşünün:
mi? – mlt