我正在学习clojure并且有一个非常基本的问题:鉴于clojure有类型推断,你怎么能告诉我们推断出什么类?
例如,这些将导致不同的数据类型:
(2)
(/ 2 3)
(/ 2.0 3)
是否有某种class
函数会返回数据类型?此外,是否有正常的方式将某些东西作为特定类型?所以在上面的第二个例子中,如果我想让结果浮动,我会怎么做?
答案 0 :(得分:32)
type
库中有clojure.core
个功能。
user> (type 2)
java.lang.Integer
user> (type (/ 2 3))
clojure.lang.Ratio
user> (type (/ 2.0 3))
java.lang.Double
如果要将给定数字转换为浮点数,请使用float
。
user> (float 10)
10.0
答案 1 :(得分:2)
同样,你可能不需要施放,因为以下工作:
user> (Double/toString (/ 2 3))
"0.6666666666666667"
然而,这也是如此:
user> (str (/ 2 3))
"0.6666666666666667"