我想编写方法(define_variables),它可以获得block并使用其中定义的变量.可能吗?例如,我想输出5:
module A
def self.define_variables
yield
puts a # not 5 :(
end
end
A::define_variables do
a = 5
end
Run Code Online (Sandbox Code Playgroud)
也许有一些eval的技巧,但还没有找到任何人.
我有一个目前看起来像这样的ruby代码:
grades.sum{|g| g.grade * g.weight}
Run Code Online (Sandbox Code Playgroud)
对于用户维护的DSL,我想实现这样的事情:
grades.sum('grade' * 'weight')
Run Code Online (Sandbox Code Playgroud)
这可能吗?