[#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:47456] Re: 変数の変更を監視するには?

From: "Endo Akira" <endo4917@...>
Date: 2010-09-19 19:33:45 UTC
List: ruby-list #47456
遠藤と申します。
私もset_trace_func というのに初めてお目にかかりました。

で、set_trace_funcのprocが呼ばれる度に何で呼ばれたかを
 puts "#{file}:#{line}: #{event}"
で出力すると、@var=nilなどの出力がどういうタイミングで出て
きたかが分かります。

> test.rb:21: @var=nil
> test.rb:6: @var=100
> test.rb:23: @var=nil
> test.rb:3: @var=100

最初の@var=nilが出てくるのは、TEST.newのTESTが評価
された時のようです。トップレベルの@varが出力されています。

2番目も意外で、6行目で評価されるのは数値の100ですので、
この時にはまだ@varはnilで出力されません。その次のeventで
あるset_varからのreturnのところで評価されて@var=100となり
ます。

3番目は、testが評価されたタイミングでトップレベルですので
@varはnil。ここでprocの中のvもnilにセットされます。

したがって、get_varで評価するタイミングでの@varの値が出力
されてしまう、というわけです。

procで@varの変化を追うのをプログラムの1行目から8行目に
限定すればTESTの中での@varの変化が追えるということになります。

感動しました。

In This Thread

Prev Next