3

clojureのARef実装には、3つの方法があります

void setValidator(IFn vf);

IFn getValidator();

void validate(IFn vf, Object val)

これらの方法は何に使用されますか?

4

1 に答える 1

3

バリデーター関数は、ARefの新しい値(var / ref / agent / atom)が公開される直前に呼び出される1つの引数関数です。関数がfalseを返すか、例外をスローした場合、ARefの値は変更されません。

ゲッターはコア関数に対応しget-validator、セッターはに対応しset-validator!ます。はvalidateclojureコードによって呼び出されるため、呼び出す必要はありません。

例については、clojureのドキュメントを参照してください

于 2012-10-12T02:51:47.310 に答える