From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 1999-11-05T14:11:19+09:00 Subject: [ruby-dev:8237] Re: [ruby-list:18281] Re: アクセス制御について けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :8224 ] the message: "[ruby-dev:8224] Re: [ruby-list:18281] Re: アクセス制御について ", on Nov/04 19:14(JST) Shugo Maeda writes: >前田です。 >> >> しかし、def に返り値があるなら、class とか module にも欲しくなりません? >> >> 何が適切な返り値だろう。 >> > >> >やはり{クラス|モジュール}オブジェクトではないでしょうか。 >> >> class/moduleは実行文だから今の仕様どおりでいいんでないかしら? つまし最期 >> に実行した文の返り値. > >あ、仮想クラス定義はそうなってましたね。 ># 普通の(?)クラス定義はvoid value expressionですよね。 いや. そんなことないと思いますよ. % ruby -e 'p eval "class Foo; 1;end"' => 1 instance_eval{class Foo; 1;end} => 1 でも, p class Foo; 1; end はエラーになるのね.... >> # 何かこれに依存したコード書いている覚えがあります(^^;;; >石塚さんおそるべし。 どうしても必要だったんですね. 特異クラスがインクルードしているモジュール が知りたかったんです. a = class << File; included_modules; end b = class << FileTest; self; end a[0] == b # => true a[1] == b # => false >> 特異クラスのコンテキストで評価したものを得るにはこれがないと, クラス定数 >> とかグローバル変数を使うはめになってしまいます. >普通の人はあんまり特異クラスのコンテキストで評価したものを必要と >しないような気もしますが(^_^; 確かに(^^;;; でも, 特異クラスもクラスなので差別しないで(^^;;; >> >ほんとはメソッド定義の方も(unboundな)メソッドオブジェクトを返す方 >> >がIDを返すより気持ちいいかも。 >> うーん. すばらしぃ!! > >でもまつもとさんは乗り気じゃなさそうですね(^_^; eval.cを大改造されてバグを大量発生させられるのもこまりものだし(^^;;; __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---