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