1
我一直在閱讀以不同方式在Ruby中傳遞方法,對我來說傳遞方法並對其執行似乎是最乾淨的。但是,我認爲我做錯了。這工作:如何在Ruby中調用方法作爲參數?
def core
myMethod = rand(2) > 0 ? meth1 : meth2
myMethod.call("entered val")
end
def meth1
Proc.new do | val |
puts "meth1: #{val}"
end
end
def meth2
Proc.new do | val |
puts "meth2: #{val}"
end
end
但感覺更自然有它看起來像以下(不工作):
def core
myMethod = rand(2) > 0 ? meth1 : meth2
myMethod("entered val")
end
def meth1
puts "meth1: #{val}"
end
def meth2
puts "meth2: #{val}"
end
我如何格式化後才能正常運作?
而不是折騰代碼,解釋爲什麼它應該這樣做。然後,OP將能夠了解要做什麼以及爲什麼要做。 –
我認爲對最近提出的問題提供一個快速的,僅用於代碼的答案是有價值的,然後在時間允許的情況下跟隨長時間解釋作爲編輯。當然,你當然不同意。 – Cade
這正是我想要的 - 謝謝! – aronchick