1

CLOS でスロットのタイプを強制するにはどうすればよいですか。

それが答えになることはわかってい(locally (declare (optimize safety))) (defclass foo () ((num :type number...ますが、移植性が十分ではないと思います。(CLISP 2.49 ではなく、SBCL のみ)

または、それらを実装する必要がありますか?(指定された s に続く各スロットをチェックするため:type。)

  1. デフメソッド:after (setf SLOT)
  2. デフメソッド:after initialize-instance

それを行う簡単な方法はありますか?

また、フック「スロット更新」用の「MOP」またはメタクラスはありますか?

ありがとう。

編集:CLOSと同じ質問ではないと思います:スロットにシンボルのベクトルの型を強制的に持たせる方法は? 、その「メタクラス」などについてさらに情報が必要だからですslot-value-with-class

編集:私closer-mopは、好ましいポータブルな方法を提供することがわかりました。

CL-USER> (nth 0 (closer-mop:class-slots (find-class 'foo-class)))
CL-USER> (closer-mop:slot-definition-type *)
4

0 に答える 0