一段时间以来,我一直试图弄清楚这个。
(defn is-decimal [astr]
(if (. astr (indexOf (int \.)))
(Double/parseDouble astr)
(Integer/parseInt astr)))
这就是我写的函数。is-decimal
要么传递诸如 "2.5" 或 "5" 之类的东西,但它总是使用if
' 的第二个参数,而不是它的第三个参数。我(. astr (indexOf (int \.)))
在 REPL 中进行了测试,它似乎工作正常,失败时返回 -1,失败时返回 1。我相信这可能是问题所在。-1 在 Clojure 中并不意味着错误。谁能想到解决这个问题的方法?
提前致谢。
编辑:感谢您的帮助。在我写完这篇文章后,我有了一个想法。我编写了一个检查 1 和 -1 的谓词函数。正是我需要的。我不应该在醒来后直接编码:\