gpt4 book ai didi

clojure - 如何在 clojure 中使用 schema.core/enum?

转载 作者:行者123 更新时间:2023-12-04 02:06:59 24 4
gpt4 key购买 nike

给定一个由棱柱形 schema.core/enum 制成的枚举,让我们说:

(def myenumtype (schema.core/enum "a" "b" "c"))

如何将另一个 def 设置为特定的枚举项?在这里,我想将 e 设置为“a”枚举项。

(def e (???  myenumtype))

我如何将其与特定枚举进行比较?在这里,我想检查 e 是否等于 "a" 枚举类型。

(= e ((??? "a") myenumtype))

最佳答案

我认为您误解了 Schema 的工作原理。您不是在创建枚举类型,而是在创建一个验证器来检查特定值是否等于枚举值之一。

对于您的情况,您需要做的就是:

(def e "a")

这是一个 REPL session 示例:

user=> (schema.core/validate (schema.core/enum "a" "b" "c") "a")
"a"
=> (schema.core/validate (schema.core/enum "a" "b" "c") "z")
clojure.lang.ExceptionInfo: Value does not match schema: (not (#{"a" "b" "c"} "z"))

关于clojure - 如何在 clojure 中使用 schema.core/enum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42590934/

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