From: matz@... (Yukihiro Matsumoto) Date: 1997-01-31T18:06:46+09:00 Subject: [ruby-list:2016] Re: [Request] static var? (Re: Array as list/tupple) まつもと ゆきひろです. 書きかけのメイルを失っちゃいました….悲しい. In message "[ruby-list:2008] [Request] static var? (Re: Array as list/tupple)" on 97/01/31, sinara@blade.nagaokaut.ac.jp writes: | |原です。 |(1)クラス固有のグローバル変数(?)がほしーい。 なんどか検討してみたことがあるのですが,その度に挫折していま す.難しいのは変数の場合その値の共有の範囲を限定するのが難し いということです. しかし,ほとんどの場合(若干姑息な手段を用いる必要があっても), 定数で何とかなるものです. |class Foo | def bar(x) | if (y = %Cash[x]) | y | else | y = 本来の処理 | %Cash[x] = y | end | end |end class Foo Cache = {} def bar(x) if (y = Cache[x]) y else y = 本来の処理 Cache[x] = y end end end |class Foo | def initialize | %ProductNum += 1 | @my_num = %ProductNum | end |end class Foo ProductNum = [0] def initialize ProductNum[0] += 1 @my_num = ProductNum end end で,どうでしょう? |これは大変な仕様変更だな。ruby++ でしょうか。:-) 将来ありうる追加仕様としてはファイル(あるいはパッケージ)に固 有のグローバル変数というのはありえるかもしれないとおもってい ます.Cのstaticのグローバル変数みたいなもんですね. | |(2)ruby からオブジェクト指向的なものを取り除いた ruby-- |がほしーい。 イテレータ以外の制御構造とグローバル変数,ローカル変数はオブ ジェクト指向してませんね. しかし,メソッドはないでしょうから(関数のようにみえるものも 含めて)全部ダメでしょうし,演算子も一部の制御構造タイプのも のを除いては全滅ですね.それに文字列,正規表現,配列,連想配 列全てオブジェクトですからだめですね.もうほとんどなにも残ら ないのでは? 原さんがどうしても欲しいというんでしたら,特別に作っても良い ですけど(費用は後で相談しましょう),喜ぶ人は少ないでしょうね. |(3)複数行にわたるコメント指定がほしーい。 | |if FALSE ... end でもいいけど、ruby-mode.el がインデントつけて |くれるから、、。 ruby-encomment-regionとかじゃダメなんですよね.ずっと先なら perlのようなembedded documentを組み込むかも知れませんけど. まつもと ゆきひろ /:|)