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-classのobjectのスロットに アクセスしようとしたとき、 スロットの名前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が値を返却したとき、 その値は次のように扱われます。
操作がsetfかslot-makunboundのときは、 呼び出し側によってどんな返却値でも無視されます。
操作がslot-valueのときは、 呼び出し側によって第一返却値が使われ、 他の全ての値は無視されます。
操作がslot-boundpのときは、 メソッドの第一返却値をブール値とされて使用され、 他の全ての値は無視されます。
なし。
なし。
slot-missingの標準のメソッドでは、 型errorのエラーが発生します。
defclass, slot-exists-p, slot-value
引数のセット(インスタンスのクラスclassを含む)は、 slot-missingのメタクラスによるメソッドの定義が容易になります。