作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个由棱柱形 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/
我是一名优秀的程序员,十分优秀!