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