w = Gtk::window.new
w do
title = "foo"
resizable = false
foo = bar
end
我想在将块中的每个方法self
传递给块之后调用它。
-谢谢。
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