From: Minero Aoki Date: 2000-02-20T21:03:56+09:00 Subject: [ruby-dev:9259] ruby object あおきです。 ちょっと古い話題なんですが Subject 変えて持ちだします。 In mail "[ruby-dev:9083] Re: bang method returns string always" matz@netlab.co.jp (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > $~などの記号でない代替が必要だろうとは昔から思ってるんです。 > 提案歓迎。 Object に「インタープリタオブジェクト」みたいなものを返す current というメソッドを定義するというのはどうでしょうか。 そのインタープリタオブジェクトは $ 系変数をもう少しわかりやすい 名前のメソッドで提供します。つまり これまで /regexp/ === str; str = $' 新案 /regexp/ === str; str = current.post_match これまで if $SAVE_LEVEL > 2 then 新案 if current.save_level > 2 then ということができるようにするわけです。 この方法のいいところは、既存のメソッドやローカル変数と名前が衝突しても 上書きされてしまうので全然問題にならず、実装も簡単なことです。 一方、短所は微妙に遅くなることですが、メソッドコール二回だけですから 問題になるほど遅くはならないと思います。 どうでしょ? ------------------------------------------------------------------- あおきみねろう