[英]How to use do end block on a instance(object itself) in Ruby?
w = Gtk::window.new
w do
title = "foo"
resizable = false
foo = bar
end
我想在每塊方法調用self
其傳遞給塊之后。
-謝謝。
我相信一種方法可以是#instance_eval的用法,例如:
a = 'asd'
a.instance_eval do
a.upcase!
end
a # => ASD
在塊內獲取對象的另一種方法是使用#tap ,但是您將不會擁有self:
gkt_window = Gtk::window.new
gtk_window.tap do |w|
w.title = 'foo'
w.resizable = false
w.foo = bar
end # Now gtk_window will have all properties set and you can chain methods to this block
您可以使用BasicObject#instance_eval
:
w.instance_eval do
title = 'foo'
resizable = false
foo = bar
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.