使用例項評估實現
許多語言都有一個 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