インスタンス管理



instantiate class &optional size [関数]

classから新しいオブジェクトを作る低レベル命令である。 もしclassvector-classならば、sizeがなければならない。


instance class &rest message [マクロ]

インスタンスが作られ、そこにmessageが送られる。


make-instance class &rest var-val-pairs [関数]

classのインスタンスを作成し、スロット変数を var-val-pairsのように設定する。 例えば、(make-instance cons :car 1 :cdr 2) は、(cons 1 2)と同等である。


copy-object object [関数]

copy-object関数は、参照トポロジー(再帰参照でも構わない)を保ったまま コピーするために使用する。 copy-objectは、独自性の保存に触れないsymbolやパッケージを除いて、 objectからアクセス可能などんなオブジェクトもコピーする。 copy-objectは、オブジェクトの中の全ての参照を2度妨害する。 1度が、新しいオブジェクトを作り既にコピーされたオブジェクトのオリジナルに マークを付けるとき、そしてマークを消すときにもう1度。 この2段階の処理は、copy-objectcopy-seqよりも遅くする。 もし順番にコピーをしたいならば、 copy-seqcopy-treeを使用することを薦める。


become object class [関数]

objectのクラスをclassに変更する。 古いクラスと新しいクラス両方のスロット構造は、一致しなければならない。 普通、2要素ベクトル間のクラス変更にのみ安全に使用することができる。 例えば、整数ベクトルからビットベクトルへの変更。


replace-object dest src [関数]

destは、srcのサブクラスのインスタンスでなければならない。


class object [関数]

objectのクラスオブジェクトを返す。 クラス名を得るために、クラスオブジェクトに:nameメッセージを送る。


derivedp object class [関数]

derivedpは、objectclassまたはそのサブクラスから インスタンス化されているかどうかを判定する。 subclasspderivedp関数は、クラス継承のなかを探索できない。 したがって、一定時間内に型のチェックがいつも終了する。


slot object class (index $ \vert$ slot-name) [関数]

スロット値の名前かインデックスを返す。


setslot object class (index $ \vert$ slot-name) value [関数]

setslotは、内部処理関数でユーザーが使用できない。 代りに、setfslotの組み合せを使用する。


2016-04-05