From: "H.Yamamoto" Date: 2004-09-02T22:10:24+09:00 Subject: [ruby-list:40000] Re: ruby/tk のイベントハンドラをまとめて設定するには? 山本です。 nobu@ruby-lang.org wrote: (2004/09/02 09:17) >逆に、ブロック引数は外側のスコープに同名の変数があっても常にブ >ロックローカルになる予定です。 なるほど、現在のルールよりクリアな感じがします。 > module Kernel > def let(*values) > yield(*values) > end > end > > require "tk" > > TkCanvas.new { > 3.times {|i| > h = i * 50 > let(TkcRectangle.new(self, 100 + h, 100 + h, 200 + h, 200 + h, :fill => :white)) {|r| > r.bind "ButtonPress-1", proc { p r.id } > } > } > pack > } > > Tk.mainloop > >個人的には、こういうのもどうかなと思ってるんですが、多値がArray >から分離されるとちょっと使いづらいかも。 > > module Kernel > def as > yield(self) > end > end なんとなく let が気に入りました。何ていうか、|r| の縦棒が視覚的に重要な気がします。