gpt4 book ai didi

Clojure/ClojureScript 双函数未声明

转载 作者:行者123 更新时间:2023-12-05 06:46:24 25 4
gpt4 key购买 nike

我正在编写一个函数,它是 Clojure/ClojureScript 交叉的一部分,并且我使用了 double 函数。当我用 cljsbuild 编译它时,它会提示 double 是一个未声明的变量。

WARNING: Use of undeclared Var my-ns/double 

double 的替代函数是什么,它可以在两个平台上运行? 仅供引用,我用它来将除法后的有理数转换为 double — 我是然后将其格式化为字符串。

最佳答案

ClojureScript currently only supports integer and floating point literals映射到 JavaScript 原语。目前不支持 Ratio、BigDecimal 和 BigInteger 文字。

好消息是javascript floats are already double precision所以没有必要明确地强制他们成为 double 。坏消息是不支持有理数,因此您不能使用它们。

您要么需要重写使用有理数的表达式,要么将 JVM 代码与针对 JS 的代码分开。看看 cljx project做到这一点。

关于您的用例。根据您的描述,我了解到您正在尝试重写类似于以下内容的表达式:

(str (double (/ 2/4 2)))
=> "0.25"

您可以像这样在 CLJS 中简单地重写该表达式:

(str (double (/ (/ 2 4) 2)))
=> "0.25"

请注意,您可以省略对 double 的调用:

(str (/ (/ 2 4) 2))
=> "0.25"

希望这能解决您的问题。

关于Clojure/ClojureScript 双函数未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com