我期望此代碼:爲什麼不這樣做的代碼什麼我希望
def print_call_and_return(string, &block)
puts string
block.call unless !block
"return"
end
puts print_call_and_return("parameter") do
puts "block"
end
打印:
parameter
block
return
但是它實際上打印如下:
irb(main):011:0> puts print_call_and_return("parameter") do
irb(main):012:1* puts "block"
irb(main):013:1> end
parameter
return
=> nil
有人可以解釋這一點嗎?
這是一個非常好的主意,爲您的問題提供更好的標題。 「爲什麼這個代碼沒有達到我所期望的」並沒有告訴我們關於你的問題的任何事情。 – 2013-03-05 02:16:50