Проверить класс чего-то в clojure?

Я изучаю clojure и имею очень простой вопрос: учитывая, что clojure имеет вывод типа, как можно сказать, какой класс был выведен?

Например, они каждый привели бы к различным типам данных:

(2)
(/ 2 3)
(/ 2.0 3)

Есть ли некоторый class функция, которая возвратит тип данных? Кроме того, есть ли нормальный способ бросить что-то, чтобы быть определенным типом? Таким образом во втором примере выше, что я сделал бы, если бы я хотел, чтобы результатом было плавание?

23
задан amalloy 27 May 2011 в 02:39
поделиться

2 ответа

В библиотеке 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
32
ответ дан 29 November 2019 в 02:25
поделиться

Кроме того, вы можете не нужно, потому что актерский следующие работы:

user> (Double/toString (/ 2 3))
"0.6666666666666667"

Тем не менее, это делает тоже:

user> (str (/ 2 3))
"0.6666666666666667"
2
ответ дан 29 November 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: