为什么我的字符串格式在 Clojure 中失败?
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Java 的
String.format
采用Object[]
(或Object...
)来使用String.format
在 Clojure 中,您需要将参数包装在数组中:Clojure 提供了一个更易于使用的格式包装器:
Kyle
Java's
String.format
takes anObject[]
(orObject...
), to useString.format
in Clojure you need to wrap your arguments in an array:Clojure provides a wrapper for format that's easier to use:
Kyle