在Luminus应用程序中,这是一个产生错误的动作的一部分:
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
。这不是:
some-var 123
如何解决错误?
答案 0 :(得分:1)
您认为其中一个变量total-pages
和/或page-size
不是数字而是seq而rem
和quot
函数要求其所有参数都是数字。尝试将其打印到控制台以检查它是哪一个。
您的if
表达式中还有另一个问题:您希望使用数值来测试真实性。在Clojure中,任何数字值(包括0)都是真实的(严格来说只有nil
和false
值被视为虚假)所以你需要将rem
的结果与零进行比较:
(if (zero? (rem a b))
:truthy
:falsey)