0
w = Gtk::window.new
w do
   title = "foo"
   resizable = false
   foo = bar
end

selfブロックに渡した後、ブロック内のすべてのメソッドを呼び出したい。

-ありがとう。

4

2 に答える 2

1

それを行う 1 つの方法は、次のような#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
于 2013-07-05T15:49:22.353 に答える
0

使用できますBasicObject#instance_eval

w.instance_eval do
  title = 'foo'
  resizable = false
  foo = bar
end
于 2013-07-05T15:48:39.070 に答える