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

时间:2012-02-18 18:39:15

标签: clojure string-formatting

在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

我做错了什么?

1 个答案:

答案 0 :(得分:15)

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

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

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

(format "%2f" 5.0)

凯尔