Я изучаю clojure и имею очень простой вопрос: учитывая, что clojure имеет вывод типа, как можно сказать, какой класс был выведен?
Например, они каждый привели бы к различным типам данных:
(2)
(/ 2 3)
(/ 2.0 3)
Есть ли некоторый class
функция, которая возвратит тип данных? Кроме того, есть ли нормальный способ бросить что-то, чтобы быть определенным типом? Таким образом во втором примере выше, что я сделал бы, если бы я хотел, чтобы результатом было плавание?
В библиотеке clojure.core 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
Кроме того, вы можете не нужно, потому что актерский следующие работы:
user> (Double/toString (/ 2 3))
"0.6666666666666667"
Тем не менее, это делает тоже:
user> (str (/ 2 3))
"0.6666666666666667"