gpt4 book ai didi

clojure - 编写函数时 “true” 有什么用,给定键和映射,返回 “true”

转载 作者:行者123 更新时间:2023-12-01 13:16:26 26 4
gpt4 key购买 nike

编写一个函数,给定键和映射,如果映射包含具有该键的条目且其值为nil,则返回true

我遇到的解决方案:

#(nil? (get %2 % true))

谁能解释一下 true

中的用法
(get %2 % true) ?

谢谢!

最佳答案

这是在没有 key 的情况下将返回的默认值

;; key exists
(get {:a 1} :a 2)
#=> 1
;; key doesn't exist (default value is returned)
(get {:a 1} :b 2)
#=> 2
;; key exists and it's value is nil
(get {:a nil} :a 2)
#=> nil
;; key doesn't exist, nil is returned
(get {:a 1} :b)
#=> nil

一些文档可以在这里找到

https://clojuredocs.org/clojure.core/get

所以想法是 (get {:a 1} :b) 将始终返回 nil 因为 key 不存在。在这种情况下 (nil? (get {:a 1} :b)) 将返回 true,这不是我们想要的。这就是为什么需要添加此默认值的原因。所以只有当实际值为nil时才会返回nil

值 true 在这里并不特殊。 85 也可以:除 nil 之外的任何值都可以解决问题。

关于clojure - 编写函数时 “true” 有什么用,给定键和映射,返回 “true”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54425350/

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