为什么没有非零?在Clojure?

时间:2014-12-30 07:49:16

标签: clojure

在clojure中,我注意到具有逻辑对立的函数,如[[if x if-not] [every? x不是每个]]。 我想知道为什么[not-nil?]不包括在内,是故意还是因为它太琐碎。

对不起,我得问这个。

2 个答案:

答案 0 :(得分:3)

自Clojure 1.6以来some?

clojure.core/some?
([x])
Returns true if x is not nil, false otherwise.

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

答案 1 :(得分:1)

在Clojure中,值false和nil都是假的(视为“false”),其他一切都是真实的(被视为“真”)。

举个例子,

(if-not nil
        true
        false)

评估为true,

(if-not false
        true
        false)

也评估为true。在大多数情况下,您不应该明确检查nil,而是使用对falsey / truthy值进行操作的表单。

如果您必须只检查nil,那么您可以使用some?和派生。