% 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-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のメタクラスによるメソッドの定義が容易になります。