From: Kazuhisa YANAGAWA Date: 1998-03-10T10:12:12+09:00 Subject: [ruby-dev:1633] Re: with In message <199803100050.JAA02613@picachu.netlab.co.jp> matz@netlab.co.jp (Yukihiro Matsumoto) writes: > |実はTkのselfの切り替えは結構便利だと思ってたりします(^^; > |# でもインスタンス変数ではまる人が多いだろうなとは思うのですが。 > > ええ,いろいろ難しいですね.こういう実装するのは難しくないけ > ど,採用しちゃって良いのだろうか,というのが一番迷いますよね. 「self を直接どうこうするよりも構造的で, 問題は起こりにくい」とは言 えますけど, 「乱用するとオブジェクトの情報隠蔽を破ってしまう」という のが気になります. 問題無いようにできるんでしょうか? # 中身を好きにいじれてしまうから, 簡単に一貫性の無い状態にできますよ # ね. これは問題ではないかと. でも沢山のインスタンス変数を一度に初期化しようとすると便利なのも確か なんですよね.... ハッシュを渡すと鍵をインスタンス変数名, 値をその値 として定義してくれるようなものがあるとちょっと良いのでしょうか? class SomeClass def initialize(env) # この部分を何かもっと簡単にできるようなものを用意する for bin in env key, val = bin eval "@#{key} = #{val}" end end end env = {'lines' => 10, 'columns' => 10, 'xbase' => 0, 'ybase' => 0} obj = SomeClass.new(env) こんなの. いちいちハッシュを作るのが面倒と言われると弱い. # ....結局は「ハッシュの足し算って重なりがあると良くわからない」とい # う昔話があらわれるわけですが. 足し算じゃなくて更新ということで. ====================================================================== 柳川 @ 情報システム学研究科 . 電気通信大学 katze@yuba.is.uec.ac.jp March 10, 1998 「こんな事もあろうかと,少し前に宿屋でパクっておいたのよ!」 「....こ,こんなことって, あのなあ....」