私はこのコードを期待します:
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
誰かがこれを説明できますか?