Clojure ',' никогда не оценивая его третий аргумент

Вы можете сначала проверить в файле компонента, если вызовы getTraining и getTrainingDetails возвращают правильные значения, могут быть добавлены журналы консоли. (Я думаю, что правильное место для таких вызовов - внутри ngOnInit, хотя конструктор также работает).

this.training=service.getTraining();
this.trainingdetails=service.gettrainingdetails()

Если это становится нулевым, попробуйте переместить объявления переменных - обучения и обучения с подробностями внутрь методов - getTraining и gettrainingdetails до возврата или внутри конструктора для TrainingService. Не совсем уверен из приведенного выше кода, где он определен. Если это в отдельном файле, добавьте ключевое слово экспорта прежде.

7
задан wrongusername 1 January 2012 в 23:38
поделиться

3 ответа

Если Вы хотите протестировать, содержит ли строка символ, можно использовать regex:

(re-find #"\." astr)

Или:

(some #(= \. %) astr)

Или:

(contains? (into #{} astr) \.)

Или можно использовать includes? от clojure.contrib.seq-utils, который делает это также.

Clojure уже имеет читателя, который знает, как отличить ints и удваивается, поэтому если Вы уверены, что Ваша строка только имеет числа в ней, можно использовать ее. (Будьте осторожны, хотя, это читает что-либо, не просто числа. Это потенциально опасно. Не используйте это, если существует шанс, Ваша строка имеет что-то другое, чем число.)

Примечание, Clojure также обрабатывает случай, где целое число является слишком большим для вписывания в собственный компонент int без переполнения. Если Вы хотите проанализировать целые числа, Вы могли бы хотеть посмотреть на функцию bigint, а не parseInt.

user> (class (read-string "2.5"))
java.lang.Double
user> (class (read-string "2"))
java.lang.Integer
user> (class (read-string "2000000000000"))
java.math.BigInteger

Если Ваша функция является предикатом, распространено в Clojure назвать его decimal? вместо is-decimal. Ваша функция на самом деле является большим количеством синтаксического анализатора числа, так лично я назвал бы его parse-number или string-to-number.

10
ответ дан 6 December 2019 в 10:54
поделиться

Непротестированный:

(if (> 0 (. astr (indexOf (int \.))))
6
ответ дан 6 December 2019 в 10:54
поделиться

хорошо, если это действительно возвращается-1, если это приводит к сбою затем проверку на-1, и возвратите false, если это

2
ответ дан 6 December 2019 в 10:54
поделиться
Другие вопросы по тегам:

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