我读了以下ruby代码:
def callbacks(procs)
procs[:starting].call # line 1
puts "Still going"
procs[:finishing].call # line 2
end
callbacks(:starting => Proc.new { puts "Starting" }, # line 3
:finishing => Proc.new { puts "Finishing" }) # line 4
我可以猜出它的剂量。但我不知道第1行和第1行中的:starting
和:finishing
是什么2表示,第3行中的:starting=>
和第4行中的:finishing=>
表示。甚至很难找到谷歌的关键词。
有人可以向我解释第1,2,3,4行吗?如果您可以参考一些官方文档,那将会更好。
答案 0 :(得分:3)
procs
是Hash
,procs[:starting]
是指键:starting
的值,由以下人员设置:
:starting => Proc.new { puts "Starting" }
方法调用等同于:
h = {}
h[:starting] = Proc.new { puts "Starting" }
h[:finishing] = Proc.new { puts "Finishing" }
callbacks(h)
答案 1 :(得分:1)
但我不知道:开始和:在第1行和第1行完成2意味着
:starting
和:finishing
是哈希procs
的哈希键。
what:starting =>在第3行和:finish =>在第4行意味着。
您正通过方法callbacks
发送哈希对象作为参数。
请阅读Hash
。