luna での変数定義の仕方
NAKAJIMA Mikio
minakaji @ osaka.email.ne.jp
2002年 5月 11日 (土) 22:22:35 JST
At Sat, 11 May 2002 21:38:22 +0900,
OHASHI Akira <bg66 @ koka-in.org> (大橋 彰) wrote:
> 変数(インスタンス変数、クラス変数)の定義の仕方が
> 良く判りません。
インスタンス変数、クラス変数なんて luna にありましたっけ? ないんじゃ
ないっすかね。
> 初回の get-channel で nil になるのを防ぎたいので初期値を設定したい
> のですが、コンストラクタを定義するにはどう書けば良いのでしょうか?
> # standard-object の initialize-instance が鍵かしら…
(luna-define-method initialize-instance :before
((tv tv) &rest init-args)
(tv-set-channel-internal tv 1)
tv)
とかやるんだと思います。最後に必ずインスタンスを返すことをお忘れなきよ
う...(ぼくはこれをしょっちゅう忘れて不思議な bug に悩まされます)。
(setq my-tv1 (luna-make-entity 'tv))
(get-channel my-tv1)
=> 1
ちなみに :before を使うのは子クラスで :after を使いたくなるかも...とい
うところかな。
--
中島幹夫 <minakaji @ osaka.email.ne.jp>
http://www.asahi-net.or.jp/~gy2m-nkjm/
More information about the Emacs-mime-ja
mailing list