clock 采取一个块:
def clock(&block)
hours = Time.new.hour
puts hours
hours.times do
block.call
end
end
Run Code Online (Sandbox Code Playgroud)
这可以工作,并"DONG"根据今天的小时数放在屏幕上:
clock do
puts "DONG..."
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试传递dong方法:
def dong
puts "DONG..."
end
Run Code Online (Sandbox Code Playgroud)
到clock作为其块.这个:
clock(dong)
Run Code Online (Sandbox Code Playgroud)
抛出错误:
`clock': wrong number of arguments (1 for 0) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么第一个有效,但第二个没有?您是否必须明确定义要传递的代码块,还是可以将另一个方法作为代码块引用?