gpt4 book ai didi

Clojure:比较字符

转载 作者:行者123 更新时间:2023-12-02 00:21:00 24 4
gpt4 key购买 nike

在C++世界中,我可以这样做(字符是可比较的):

bool isDigit(char c) {
return '0' <= c && c <= '9';
}

在 Clojure 中,我可以比较相等,但可以比较 less:

(= \a \b) ; [compiles] false
(< \a \b) ; java.lang.Character cannot be cast to java.lang.Number

如何在 Clojure 中实现此功能?如何检查某个字符是否在某个范围内?我可以像这样以重量级的方式做到这一点:

(defn isDigit [c] (#{\0 \1 \2 \3 \4 \5 \6 \7 \8 \9} c))

最佳答案

如果你想检查一个字符是否在某个范围内,你可以使用 int 强制转换:

(let [zero (int \0)
nine (int \9)]
(defn is-digit? [c] (<= zero (int c) nine)))

或者,如果您需要检查的只是数字,则可以直接调用 Character.isDigit 方法。显然,这不适用于非预定义字符类的范围。

关于Clojure:比较字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18624284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com