Standard-Generic-Function SLOT-MISSING

UP


Standard-Generic-Function SLOT-MISSING

Standard Generic Function SLOT-MISSING

構文

slot-missing class object slot-name operation &optional new-value => result*

メソッド宣言

slot-missing (class t) object slot-name operation &optional new-value

引数と戻り値

class - objectのクラス
object - オブジェクト
slot-name - シンボル(おそらくはスロットの名前)
operation - 次のどれかのシンボル、 setf, slot-boundp, slot-makunbound, slot-value.
new-value - オブジェクト
result - オブジェクト

定義

ジェネリック関数slot-missingは、 メタクラスがstandard-classobjectのスロットに アクセスしようとしたとき、 スロットの名前slot-nameがそのクラスに 存在しなかったときに呼び出されます。 標準のメソッドでは、エラーが発生します。

ジェネリック関数slot-missingは、 プログラマーによって呼び出されることを想定していません。 プログラマーはメソッドを書くことができます。

ジェネリック関数slot-missingは、 次の関数slot-value, (setf slot-value), slot-boundp, slot-makunboundの評価中に 呼び出されるかもしれません。 これらの操作は、関数の引数symbolに、 それぞれslot-value, setf, slot-boundp, slot-makunbound で対応します。

slot-missingのオプションのnew-value引数は、 操作がスロットに値をセットしようとするときに使われます。

もしslot-missingが値を返却したとき、 その値は次のように扱われます。

例文

なし。

影響

なし。

例外

slot-missingの標準のメソッドでは、 型errorのエラーが発生します。

参考

defclass, slot-exists-p, slot-value

備考

引数のセット(インスタンスのクラスclassを含む)は、 slot-missingのメタクラスによるメソッドの定義が容易になります。


TOP, Github