dictionary - clojure 中的 map 给出了意想不到的结果

在clojure中使用map,检查字符串是否包含大写字符。

(map #(= (clojure.string/upper-case %) %) "Hello") 

预期的结果。

(true false false false false)

不幸的是,结果出乎意料。

(false false false false false)

我做了一个实验,把第一个“%”中的“H”换掉,结果还是出乎意料。

(map #(= (clojure.string/upper-case "H") %) "Hello") 

(false false false false false)

当我在第二个“%”中替换“H”时,结果发生了变化,这是预期的结果。

(map #(= (clojure.string/upper-case %) "H) "Hello") 

(true false false false false)

这有什么问题?请随时发表评论。

最佳答案

正如其他人所指出的,将字符与字符串进行比较是行不通的。比较字符串将起作用:

(map #(= (clojure.string/upper-case %) (str %)) "Hello")
=> (true false false false false)

然而,这更直接:

(map #(Character/isUpperCase %) "Hello")
=> (true false false false false)

https://stackoverflow.com/questions/67227767/

相关文章:

php - 如何用正则表达式匹配 400 到 550 之间的数字?

hibernate - 无法设置 Hibernate 中的通用生成器参数

c# - LINQ 按错误分组 : "does not contain a definition f

mongodb - 从 mongodb shell 运行具有 mongodb 查询的脚本

.net - 如何检查数字是否为 .NET 中的整数?

user-interface - 为什么输入密码2次?

python - 生成圆周上的所有点

list - Scala 列表理解一次接受两个元素

php - 多次哈希传​​递会使存储密码更安全吗?

iphone - 尝试每 10 秒更改一次 UIImageView