From: akendo@...3.rim.or.jp Date: 1999-03-11T15:23:22+09:00 Subject: [ruby-list:12748] Re: Making of Interval class. 早速のフォローありがとうございます。(さっき、Numericの stepメソッドを知ったところです。今回の話しには直ちには 使いにくそうですが。) On Thu, 11 Mar 1999 13:06:56 +0900 matz@netlab.co.jp (Yukihiro Matsumoto) wrote: > たとえば, > Arrayをインスタンス変数に持つオブジェクトとか.あるいは今回 > はそもそもクラスを作る必要はなくて,Stepのような要素を持つ > Arrayを生成するメソッドをどこかに(関数的あるいはArrayクラス > に追加しちゃう)定義するのでもOKだったように思います. おっしゃるとおりでした。ちょっと継承なるものを試してみよう、 という気もあって。 とにかく、いろいろ試している時期ですので、おつきあいいただき 感謝しています。 > |もう一つは、できあがったものをcaseのwhen節で使うのですが、 > |変数に代入すると、個々の要素が参照されなくなってしまいます。 > |当たり前といえば当たり前ですが、これが、定数にいれると参照 > |されるのは何故でしょうか。仕様です、でもいいのですが、いま > |いちArrayの扱われ方が分かってません。早くRuby本が出ないかな。 > > すみません.期待通り動かなかったプログラムと期待する動きを紹 > 介して頂けませんか? 私が1.2.3で試したところ こちらは、私の勘違いでした。勘違いというのは、変数のスコープの 問題で、case文がclassの中のdefの中にあり、ローカル変数への代入は classの外にありました。それにしては、classの中での参照で、未定義だ といって、怒られなかったような気もしますが、これにはわけがあるので しょうか? > あ,ただし,この配列の中の > 要素を使ったcaseはは1.3系では動かなくなりますから使わないほ > うが良いでしょう.1.3系では > > case 60 > when *s > p s > end なるほど。動いてしまったので使ってしまいましたが、どうもふに 落ちませんでした。それとさっきのスコープの話しが重なって、配列 がどういう解釈をされているのだろう、ということになりました。 *sで配列が展開されるということになれば、理解がしやすくなります。 Perlを捨ててRubyに乗り換えることにして日が浅いのですが、今後とも よろしくお願いします。 ---- Akira Endo, akendo@t3.rim.or.jp