我找到了一个示例代码:
def callback(procs)
procs[:var_1]
puts "Proceed"
procs[:var_2]
end
callback(:var_1 => Proc.new {block_1},
:var_2 => Proc.new {block_2})
我无法弄清楚方括号[:var_1]
的含义。这是一种调用Porc / lambda的方法吗?我也很困惑,因为用于创建Procs的类似Hash的方式:
callback(:start => Proc.new {puts "The begining of the CALLBACK"},
:finish => Proc.new {puts "The ending of the CALLBACK"})
我很感激有关此事的任何帮助。
答案 0 :(得分:4)
构建方法回调是因为它正在接收哈希。这个哈希存储针对每个密钥的procs,然后执行你需要使用其密钥从哈希中获取它的proc:
hash = { :start => Proc.new {puts "The begining of the CALLBACK"},
:finish => Proc.new {puts "The ending of the CALLBACK"} }
hash[:start] #=> proc object you can call `call` on.