3

在clojure的ARef实现中,有三种方法

void setValidator(IFn vf);

IFn getValidator();

void validate(IFn vf, Object val)

这些方法是用来做什么的?

4

1 回答 1

3

验证器函数是一个单参数函数,将在发布 ARef (var/ref/agent/atom) 的新值之前调用。如果函数返回 false 或抛出异常,则 ARef 的值不会改变。

getter 对应于核心函数get-validator,setter 对应于set-validator!. 由validateclojure 代码调用,因此您不需要调用它。

有关示例,请参阅clojure 文档

于 2012-10-12T02:51:47.310 回答