Accessor FIND-CLASS

UP


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を返却します。 もしそのようなクラスが存在しないとき、 errorpfalseならnilが返却されます。 一方、errorptrueの場合は、エラーが発生します。

特定のsymbolに関連付けられたクラスclassは、 setffind-classを使うことで変更できます。 また、新しいクラスとしてsetfnilを指定した時は、 関連したクラスは削除されます。 (しかしクラスオブジェクトそのものには影響しません) もしユーザーが、標準で定義されている型指定子のシンボルに 関連付けられているクラスを変更したり削除したりしたときの結果は未定義です。

setffind-classを使用するときに、 引数のerrorpは評価する効果がありますが、返却値は無視されます。 errorpのこのような使い方が許可されているのは、 主にenvironment引数を使用できるようにするためです。

environmentはコンパイル時か実行時かを区別するために使用されます。

例文

なし。

影響

なし。

例外

もしそのようなクラスが存在せず、errorptrueの場合は、 find-classは、型errorのエラーを通知します。

参考

defmacro, 4.3.7. 型とクラスの統合

備考

なし。


TOP, Github