我試圖動態地列出列表的值 - 我不需要,但我很好奇這是什麼問題:Clojure:(double 0)vs(cast(class 0.0)0)
(double 0) ; => 0.0
(class 0.0) ; => java.lang.Double
(cast (class 0.0) 0) ; => ClassCastException Cannot cast java.lang.Long to
; java.lang.Double java.lang.Class.cast
我猜測它與Double
中的頂點D有關。爲什麼我不能在上面的代碼中試用cast
?
啊,我不知道'cast'沒有施展的東西。 :)你知道我將如何完成我的代碼的意圖,即使它在Clojure中有點奇怪嗎? –
此外,錯誤消息肯定會使它聽起來像'cast'正在嘗試投射。 –
@BobJarvis咦?這種情況下的表達毫無意義。 '(case(class「hello world」)0.0)'*也*返回0.0,因爲你只是評估'(class x)'副作用,拋棄它,然後無條件返回0.0。 – amalloy