私はしばらくの間、これが私たちのものであることを理解しようとしてきました。
(defn is-decimal [astr]
(if (. astr (indexOf (int \.)))
(Double/parseDouble astr)
(Integer/parseInt astr)))
それが私が書いた関数です。is-decimal
には "2.5" や "5" などの何かが渡されますが、常にif
の 2 番目の引数が使用され、3 番目の引数は使用されません。REPL でテスト(. astr (indexOf (int \.)))
したところ、問題なく動作しているようです。失敗すると -1 が返され、失敗すると 1 が返されます。それが問題かもしれないと思います。-1 は、Clojure では false を意味しません。誰でもこれを修正する方法を考えることができますか?
前もって感謝します。
編集:助けてくれてありがとう。これを書いた直後に、ある考えが浮かびました。1 と -1 をチェックする述語関数を作成しました。必要なものだけ。目覚めた直後にコーディングするべきではありません:\