这实际上是我见过的Rails助手。我看到它试图从名称创建一个哈希,它似乎是包含Enumerable模块的任何东西。它正在创建一个键的哈希..但绑定来自哪里?你怎么通过它? eval(键,绑定)发生了什么?
def locals_hash(names, binding)
names.inject({}) {|memo, key| memo[key.to_sym] = eval(key, binding); memo}
end
答案 0 :(得分:0)
除了Ken的评论之外,还有一个例子:
def locals_hash(names, binding)
names.inject({}) {|memo, key| memo[key.to_sym] = eval(key, binding); memo}
end
def m
a = 3
b = 'foo'
binding
end
locals_hash ['a', 'b'], m
#=> {:a=>3, :b=>"foo"}