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