gpt4 book ai didi

clojure - 使用什么数据类型才能使 1 和 1.0 在 Datomic 中都有效?

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

{
:db/id #db/id[:db.part/db]
:db/ident :outcome/weighting
:db/valueType :db.type/float
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db
}

当我尝试将 1 添加到实体时,出现错误。

:message "java.lang.IllegalArgumentException: :db.error/wrong-type-for-attribute Value 1 is not a valid :float for attribute :outcome/weighting"

如果我传入1.0,它就可以正常工作。

我很欣赏 (= (float? 1) false) 但有没有其他方法可以通过 Datomic 设置来避免这种情况,而无需解析传入的 EDN 并从 1 进行调整1.0

最佳答案

您无法将整数和 float 存储在 Datomic 中的同一架构属性中。因此,在进行交易之前,您需要将值强制转换为您选择的任何类型(这里可能是浮点型或 double 型)。您可以在执行事务的代码中执行此操作,甚至可以在事务函数中执行此操作。

关于clojure - 使用什么数据类型才能使 1 和 1.0 在 Datomic 中都有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794505/

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