gpt4 book ai didi

types - 如何在Clojure中构建健壮的数据API?

转载 作者:行者123 更新时间:2023-12-04 03:54:04 25 4
gpt4 key购买 nike

我发现由于缺少数据API,clojure应用程序在结构上非常迅速地耦合在一起。我有一些带有键的 map ,这些键的名称如果输入错误,则将引发异常或错误。我还注意到,在分解列表时很容易犯错误(例如,您可能会分解列表的错误部分)。
来自Java世界,通常我使用IDE帮助我从最少的无序数据对象中获取“正确的”数据。但是Clojure映射传递似乎是与此相反的范例。
在没有类型系统或ide代码完成的情况下,clojurian如何防御代码?

最佳答案

为您的“模式”编写验证器函数(键,还包括值的类型等),然后在代码的前置条件和后置条件内使用thm -因为它们的语法在此鲜为人知,因此可以快速复习:

(defn foo [x y] ; works with fn too
{:pre [(number? x) (number? y)]
:post [(number? %) (pos? %)]}
(+ (* x x) (* y y)))

它们依赖 assert,因此可以被禁用。 (doc assert)了解更多详细信息。

关于types - 如何在Clojure中构建健壮的数据API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7683276/

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