[#47414] <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp>

そえじま@勉強中です。

37 messages 2010/09/17
[#47420] Re: <=>の意味は? — 藤川浩明 <fhir0aki3@...> 2010/09/17

 他の方がすでに解答されているみたいですが、一応僕なりの答えを書いてみます。僕もRuby初心者なのではっきりとは言えないんですが・・・。

[#47422] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47424] Re: <=>の意味は? — "Y. NOBUOKA" <nobuoka@...> 2010/09/17

信岡です。

[#47426] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47428] Re: <=>の意味は? — "Y. NOBUOKA" <nobuoka@...> 2010/09/17

そえじまさん

[#47429] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/17

そえじま@勉強中です。

[#47433] Re: <=>の意味は? — 藤川浩明 <fhir0aki3@...> 2010/09/18

 色々返答したいと思いましたが、時間が無いので「OOPの何がいいのか、いまいち分かっておりません。」の部分にのみ解答させていただきます。

[#47435] Re: <=>の意味は? — "T.Soejima" <clev@...2.so-net.ne.jp> 2010/09/18

そえじま@勉強中です。

[#47438] Re: <=>の意味は? — masayoshi takahashi <maki@...> 2010/09/18

高橋征義です。『たのしいRuby』の著者の片割れの方から来ました。

[ruby-list:47454] Re: 変数の変更を監視するには?

From: Masakazu Takahashi <emasaka@...>
Date: 2010-09-19 11:43:02 UTC
List: ruby-list #47454
2010/9/18 Masaomi Hatakeyama <masap.hat@gmail.com>:
> ある変数(オブジェクト)を監視して変更があった場合に通知するような
> イベントリスナーのようなものでいつ変数が変更されたか知れたらいいな、
> と思ったのですが、パッとアイデアが浮かびません。

 たとえばこういうコードがあったとします。

def foo
  x = 10
  100.times do |i|
    x = i if i % 30 == 0
  end
end

 このとき、こういうのを実行しておきます。いろいろ乱暴なコードですが。

old_v = Object.new              # `==' 的にユニークな値
set_trace_func proc {|event, file, line, id, binding, klass, *rest|
  if event == 'line' || event == 'return'
    begin
      v = eval('x', binding)
      puts "#{file}:#{line}: x=#{v.inspect}" if old_v != (old_v = v)
    rescue NameError
    end
  end
}

 そのうえで、元のコードを呼び出してみます。

foo

 すると、こういう感じで出力されます。

sample.rb:2: x=nil
sample.rb:3: x=10
sample.rb:4: x=0
sample.rb:4: x=30
sample.rb:4: x=60
sample.rb:4: x=90

 以上、デバッガの中身を元に。

-- 
Masakazu Takahashi (emasaka)

In This Thread