% 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のエラーを通知します。
なし。