Urv*_*lla 2 ruby hash lambda metaprogramming
是否有可能在Ruby中实现这样的行为?(像JavaScript):
hash = {
attr: 'value',
lambda: -> do
puts self[:attr]
# puts @attr # or this way
end
}
hash[:lambda].call #should print 'value'
Run Code Online (Sandbox Code Playgroud)
无论是修补还是从Hash继承,都是一种访问语法本身.我只是想让lambdas访问他们的父哈希,而不是在调用时传递它.
而不是使用self- 通过变量名称调用哈希:
hash = {
attr: 'value',
lambda: -> do
puts hash[:attr]
end
}
hash[:lambda].call
# value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |