gpt4 book ai didi

clojure - 为什么我不能使用正则表达式来验证字符串作为映射键?

转载 作者:行者123 更新时间:2023-12-05 00:19:27 24 4
gpt4 key购买 nike

在我的 Clojure 项目中,我有这些:

:dependencies [
[org.clojure/clojure "1.8.0"]
[prismatic/schema "1.0.5"]]

这被认为是有效的:

(require '[schema.core :as s])
(def pos (s/pred #(re-matches #"\d+,\d+" %)))
(s/validate pos "0,0")
; "0,0"

因此,基于此,我会认为以下内容也是有效的(但事实并非如此):

(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}

最佳答案

正如这些事情经常发生的那样,我在发布这个问题后很快就找到了答案;当我对 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}

关于clojure - 为什么我不能使用正则表达式来验证字符串作为映射键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930714/

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