首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误"clojure.lang.LazySeq cannot be cast to java.lang.Number“

错误"clojure.lang.LazySeq cannot be cast to java.lang.Number“
EN

Stack Overflow用户
提问于 2016-05-26 02:03:47
回答 1查看 887关注 0票数 1

在一个Luminus应用程序中,这是一个产生错误的动作的一部分:

代码语言:javascript
复制
                 some-var (if (rem total-records page-size)
                                     (quot total-records page-size)
                                     (+ 1 (quot total-records page-size)))

错误是clojure.lang.LazySeq cannot be cast to java.lang.Number。而这并不是:

代码语言:javascript
复制
some-var 123

如何修复这个错误?

EN

回答 1

Stack Overflow用户

发布于 2016-05-26 02:16:59

看起来您的变量total-pages和/或page-size中的一个不是数字,而是一个序列,而remquot函数要求其所有参数都是数字。尝试将其打印到控制台以检查是哪一个。

在您的if表达式中还有另一个问题:您希望使用数值来测试真实性。在Clojure中,任何数值(包括0)都是真的(严格地说,只有nilfalse值被视为假),所以您需要将rem的结果与零进行比较:

代码语言:javascript
复制
(if (zero? (rem a b)) 
  :truthy
  :falsey)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37444583

复制
相关文章

相似问题

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