T.W*_*ole 4 clojure plumatic-schema
在我的Clojure项目中,我有这些:
:dependencies [
[org.clojure/clojure "1.8.0"]
[prismatic/schema "1.0.5"]]
Run Code Online (Sandbox Code Playgroud)
这被认为是有效的:
(require '[schema.core :as s])
(def pos (s/pred #(re-matches #"\d+,\d+" %)))
(s/validate pos "0,0")
; "0,0"
Run Code Online (Sandbox Code Playgroud)
基于此,我认为以下内容也是有效的(但事实并非如此):
(require '[schema.core :as s])
(def pos (s/pred #(re-matches #"\d+,\d+" %)))
(def structure {(s/optional-key pos) s/Any})
(s/validate structure {"0,0" true, "2,0" false})
; Value does not match schema: {"0,0" disallowed-key, "2,0" disallowed-key}
Run Code Online (Sandbox Code Playgroud)
正如这些事情经常发生的那样,我在发布这个问题之后很快就找到了答案.structure
相反,当我使用以下定义时,我得到了我的预期:
(require '[schema.core :as s])
(def pos (s/pred #(re-matches #"\d+,\d+" %)))
(def structure {pos s/Any})
(s/validate structure {"0,0" true, "2,0" false})
; {"0,0" true, "2,0" false}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
593 次 |
最近记录: |