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