【问题标题】:How do I validate a big decimal value in malli?如何验证 malli 中的大十进制值?
【发布时间】:2022-08-18 17:58:18
【问题描述】:

我有一个数据类型为大十进制的变量。如何在 Malli 中验证这一点?

查看 malli 中的谓词类型,没有一种用于大十进制的。 https://github.com/metosin/malli#built-in-schemas

那么我该如何验证呢?

我们用什么数字?在马里。有人可以为此提供一个例子吗?

    标签: validation clojure schema malli


    【解决方案1】:
    (require
            '[malli.core :as m]
            '[malli.registry :as mr])
    (mr/set-default-registry!
        (merge
            (m/default-schemas)
            {:bigdec? (m/-simple-schema {:type :bigdec?
                                         :pred #(instance? BigDecimal %)})}))
    (let [schema [:map [:n :bigdec?]]]
        {:invalid (m/explain schema {:n 1})
         :valid   (m/explain schema {:n (BigDecimal. 1)})})
    

    【讨论】:

    • 我对此有疑问。我尝试在核心中添加它。并在 Repl 中尝试了这个示例。 : (m/explain schema {:n 1}) 得到这个错误:Unable to resolve symbol: schema in this context。我该如何解决这个问题?
    • schema是这个[:map [:n :bigint?]]
    • bigdec? 不是更好的名字吗?
    • 是的,它会的。解决它。
    猜你喜欢
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多