Function MAKE-LOAD-FORM-SAVING-SLOTS
make-load-form-saving-slots
object &key slot-names environment => creation-form, initialization-form
object - オブジェクト
slot-names - リスト
environment - 環境オブジェクト
creation-form - フォーム
initialization-form - フォーム
返却値のフォームが評価されたとき、 initialization-formの実行なしに、 objectと同等のオブジェクトが構築されます。 新しいオブジェクトのスロットの初期化は、 objectの初期化されているスロットに対してはその値を用いて行われます。 objectの初期化されていないスロットについては、 新しいオブジェクトでは初期化されません。 make-load-form-saving-slots
は、 standard-object
かstructure-object
の インスタンスであれば動作します。
slot-namesは保存するスロットの名前のリストです。 slot-namesが与えられない場合、その値はすべての局所スロットになります。
make-load-form-saving-slots
は2つの値を返却するので、 循環構造を扱うことができます。 この結果がアプリケーションで有用かどうかは、 オブジェクトの型とスロットの内容が、 アプリケーションの考えるオブジェクトの状態を 完全に捉えているかどうかに依存します。
environmentはフォームを処理する環境です。
なし。
なし。
なし。
なし。
make-load-form
, make-instance
, setf
, slot-value
, slot-makunbound
make-load-form-saving-slots
は、 ユーザーがmake-load-form
メソッドを作成する際に便利です。
もしobjectがstandard-object
のインスタンスならば、 make-load-form-saving-slots
は creation-formにallocate-instance
を呼ぶフォームを、 initialization-formにはslot-value
のsetf
と、 slot-makunbound
を含むフォームが返却されます。 しかし、実際には同様の効果を持つ他の関数が使用されるかもしれません。