首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Clojure中指定一个没有参数的函数?

如何在Clojure中指定一个没有参数的函数?
EN

Stack Overflow用户
提问于 2020-05-09 00:33:29
回答 1查看 124关注 0票数 4

我想为我的一个小项目编写一些规范,并且担心如何为一个没有提供任何参数传递给它的函数编写规范。

我想为这个特定的函数编写规范:

代码语言:javascript
复制
(defn get-total-pages []
  (int (Math/ceil (/ (count (get-posts)) posts-per-page))))

假设posts-per-page在一个页面上发布,它会计算总的页面数量。该函数本身运行良好,但添加以下规范时:

代码语言:javascript
复制
(s/fdef get-total-pages
  :args ()
  :ret int?)

在没有警告的情况下,我无法对其执行任何stest/check

代码语言:javascript
复制
:clojure.spec.test.check/ret {:result #error {
 :cause "Unable to construct gen at: [] for: clojure.spec.alpha$spec_impl$reify__2059@1232bda3"
...

当不使用:args映射时,spec告诉我缺少:args,所以这里是我的最后一个问题:我如何规范一个不提供参数的函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-09 01:44:25

可以将无参数函数的:args列表指定为空的s/cat规范:

代码语言:javascript
复制
(s/fdef get-total-pages
  :args (s/cat)
  :ret int?)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61683700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档