gpt4 book ai didi

clojure - 无法使用 clojure 模式库在映射中使用字符串键验证值

转载 作者:行者123 更新时间:2023-12-04 02:17:21 25 4
gpt4 key购买 nike

我尝试使用 clojure 的 prismatic/schema 库验证 map 。这是我的形状

(require '[schema.core :as s])
(def d {"a" s/Str "b" s/Int})

当我尝试根据 map 验证它时,它抛出以下异常

(s/validate d {"a" "@@#$" "b" 2})
RuntimeException More than one non-optional/required key schemata: ["a" "b"] schema.core/find-extra-keys-schema (core.clj:705)

我是不是做错了什么,或者模式库不能针对字符串键进行验证?

最佳答案

你必须使用

(def d {(s/required-key "a") s/Str (s/required-key "b") s/Int})

Only when using keywords as keys you can omit the required-key .

example=> (def d {(s/required-key "a") s/Str (s/required-key "b") s/Int})
#'schema-examples/d
example=> (s/validate d {"a" "@@#$" "b" 2})
{"a" "@@#$", "b" 2}
examples=>

关于clojure - 无法使用 clojure 模式库在映射中使用字符串键验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com