validator
검증자(validator)는 어떤 상태를 참조로 써도 좋은지 정한다.만약 10을 넘으면 안되게 하는 validator를 만들어보자.
(defn max-ten-validator
[{:keys [number]}]
(< number 10))
(def n
(atom
{:number 0 :name "Younghwan"}
:validator max-ten-validator))
user=> (swap! n update-in [:number] + 3)
{:number 3, :name "Younghwan"}
user=> (swap! n update-in [:number] + 3)
{:number 6, :name "Younghwan"}
user=> (swap! n update-in [:number] + 3)
{:number 9, :name "Younghwan"}
user=> (swap! n update-in [:number] + 3)
IllegalStateException Invalid reference state clojure.lang.ARef.validate (ARef.java:33)
댓글 없음:
댓글 쓰기