clojure.spec相关内容

什么是 Clojure 规范?

我无法理解clojure的意图.规范 它解决了什么样的问题? 我们为什么要使用它? 解决方案 spec 允许您为数据和函数创建规范.规范的核心是谓词(基于现有的 Clojure 谓词)和结构,而不是您在静态类型语言中可能看到的基于类型.通过基于谓词的规范,您可以编写比大多数类型系统更具表现力的规范,并且使用与您的代码相同的语言. 在函数上定义的规格指定参数的规格、返回值以 ..

使用Clojure Spec从递归定义生成

让我们考虑打Clo语法的Clojure Spec正则表达式 (需要'[clojure.spec:as spec]) (spec / def :: hiccup (spec / cat:tag关键字? :attributes(spec /?map?)) :content(spec / *(spec /或:terminal string? :element :: hiccup)))) ..
发布时间:2020-10-02 21:48:38 其他开发

如何检查规范/合集中的不同ID

(s / def :: users(s / coll-of :: user:distinct true)) 上面的规范要求每个用户映射都是不同的,但如何指定仅用于检查不同的:user / ids 不应允许以下集合: [{ :id 10:name“ Jessica”} {:id 10:name“ Erica”}] 解决方案 (s / def :: ..
发布时间:2020-10-02 21:39:54 其他开发

指定记录和地图的详细方式更少?

与官方规范指南中介绍的方式相比,为地图或记录制定规范的方式是否更为冗长? (defrecord Person [名字姓氏电子邮件电话]) (s / def ::名字字符串?) (s / def :: last-name字符串? ) (s / def :: email :: email-type) (s / def :: person(s / keys:req-un [:: first:nam ..
发布时间:2020-10-02 21:35:41 其他开发

clojure.spec人类可读的形状?

使用clojure.spec,是否可以为嵌套地图定义更“易于阅读”的规范?以下内容不太好: (s / def :: my-domain-entity(s / keys:req -un [:a:b]) (s / def:a(s / keys:req-un [:c:d])) (s / def:b boolean?) (s / def:c number?) (s / def:d string?) ..
发布时间:2020-10-02 21:28:47 其他开发

:pre中有关Clojure.Spec验证的有意义的错误消息

我用了最后几天来深入研究Clojure和ClojureScript中的 clojure.spec 。 直到现在我发现它最有用,在依赖某些格式数据的公共函数中,在:pre 和:post 中将规范用作防护。 / p> (defn人名[person] {:pre [(s / valid?:: person person)] :post [(s / valid?string?%)]} ..
发布时间:2020-10-02 21:18:55 其他开发

什么是Clojure规范?

我无法理解 clojure 的意图。 spec 它能解决什么样的问题? 为什么要使用它? 解决方案 创建数据和功能的规范。规范是他们的核心谓词(基于现有的Clojure谓词)和结构化的,而不是像静态类型语言中那样基于类型。通过基于谓词的规范,您可以编写比大多数类型系统更具表现力的规范,并使用与您的代码相同的语言。 在函数上定义的规格指定规范的参数,返回值和args 和函数 ..

在哪里放置规格Clojure.Spec?

所以,我在 Clojure.Spec 中深入和深入。 我偶然发现的一件事是放置我的规格。我看到三个选项: 全局规格文件 在大多数示例中, spec.clj 文件,它在主命名空间中是必需的。它具有所有“数据类型”和函数的所有(s / def)和(s / fdef) Pro: 对照: li> 违反单一责任原则? 生产名称空间中的规格 您可以将(s / ..
发布时间:2016-11-27 18:36:10 其他开发语言