使用实例评估实现
许多语言都有一个 with
语句,允许程序员省略方法调用的接收者。
with
可以使用 instance_eval
在 Ruby 中轻松模拟 :
def with(object, &block)
object.instance_eval &block
end
with
方法可用于在对象上无缝执行方法:
hash = Hash.new
with hash do
store :key, :value
has_key? :key # => true
values # => [:value]
end