-1
是否有可能根據輸入類型編寫一種行爲不同的方法?我試圖寫出一個這樣的行爲採用參數或塊的方法
hello("derick")
#=> "hello derick!"
hello do
"derick"
end
#=>"<hello>'derick'<hello/>"
是否有可能根據輸入類型編寫一種行爲不同的方法?我試圖寫出一個這樣的行爲採用參數或塊的方法
hello("derick")
#=> "hello derick!"
hello do
"derick"
end
#=>"<hello>'derick'<hello/>"
是的,它可能在Ruby中。使用block_given?
你可以檢查一個塊是否被傳遞並執行該塊,否則返回任何其他結果。
def hello(s=nil)
if block_given?
"<hello>'#{yield}'</hello>"
else
"hello #{s}"
end
end
puts hello("derick!")
puts (hello do
"derick"
end)
HTH