在clojure的ARef
实现中,有三种方法
void setValidator(IFn vf);
IFn getValidator();
void validate(IFn vf, Object val)
这些方法用于什么?
答案 0 :(得分:3)
验证器函数是一个参数函数,它将在ARef(var / ref / agent / atom)的新值发布之前调用。如果函数返回false或抛出异常,则不会更改ARef的值。
getter对应核心函数get-validator
,而setter对应set-validator!
。 validate
由clojure代码调用,因此您不需要调用它。
有关示例,请参阅the clojure docs