使用例項評估實現

許多語言都有一個 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