在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代码调用,因此您无需调用它。

有关示例,请参见the clojure docs

关于clojure - ARef中使用的验证方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12850650/

10-10 06:27