% Accessor FIND-CLASS
Accessor FIND-CLASS
find-class
symbol &optional errorp environment => class
(setf
(find-class
symbol &optional errorp environment) new-class)
symbol - シンボル
errorp - generalized-boolean, デフォルトはtrue。
environment – マクロ展開の&environment
と同じであり、
コンパイル時か実行時かを区別するために使用されます。
&environment
引数は動的な生存期間であり、
マクロ展開関数の動的生存期間の外側で
&environment
引数が参照された場合はの結果は未定義です。
class - クラスオブジェクトかnil
environment内のsymbolという名前のクラスclassを返却します。
もしそのようなクラスが存在しないとき、
errorpがfalseならnil
が返却されます。
一方、errorpがtrueの場合は、エラーが発生します。
特定のsymbolに関連付けられたクラスclassは、
setf
とfind-class
を使うことで変更できます。
また、新しいクラスとしてsetf
にnil
を指定した時は、
関連したクラスは削除されます。
(しかしクラスオブジェクトそのものには影響しません)
もしユーザーが、標準で定義されている型指定子のシンボルに
関連付けられているクラスを変更したり削除したりしたときの結果は未定義です。
setf
でfind-class
を使用するときに、
引数のerrorpは評価する効果がありますが、返却値は無視されます。
errorpのこのような使い方が許可されているのは、
主にenvironment引数を使用できるようにするためです。
environmentはコンパイル時か実行時かを区別するために使用されます。
なし。
なし。
もしそのようなクラスが存在せず、errorpがtrueの場合は、
find-class
は、型error
のエラーを通知します。
なし。