为什么我的字符串格式在 Clojure 中失败?

发布于 2025-01-06 17:32:33 字数 450 浏览 1 评论 0原文

在 Java 中,我可以执行以下操作来格式化浮点数以供显示:

String output = String.format("%2f" 5.0);
System.out.println(output);

理论上,我应该能够使用此 Clojure 执行相同的操作:

(let [output (String/format "%2f" 5.0)]
    (println output))

但是,当我在 REPL 中运行上述 Clojure 代码片段时,我得到以下结果例外:

java.lang.Double cannot be cast to [Ljava.lang.Object;
[Thrown class java.lang.ClassCastException

我做错了什么?

In Java, I can do the following to format a floating point number for display:

String output = String.format("%2f" 5.0);
System.out.println(output);

In theory, I should be able to do the same thing with this Clojure:

(let [output (String/format "%2f" 5.0)]
    (println output))

However, when I run the above Clojure snippet in the REPL, I get the following exception:

java.lang.Double cannot be cast to [Ljava.lang.Object;
[Thrown class java.lang.ClassCastException

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

§普罗旺斯的薰衣草 2025-01-13 17:32:33

Java 的 String.format 采用 Object[](或 Object...)来使用 String.format在 Clojure 中,您需要将参数包装在数组中:

(String/format "%2f" (into-array [5.0]))

Clojure 提供了一个更易于使用的格式包装器:

(format "%2f" 5.0)

Kyle

Java's String.format takes an Object[] (or Object...), to use String.format in Clojure you need to wrap your arguments in an array:

(String/format "%2f" (into-array [5.0]))

Clojure provides a wrapper for format that's easier to use:

(format "%2f" 5.0)

Kyle

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文