Vector Clojure的问题';包含';
我正在使用Closure Box阅读一些Clojure教程,并输入以下代码:Vector Clojure的问题';包含';,vector,clojure,contains,Vector,Clojure,Contains,我正在使用Closure Box阅读一些Clojure教程,并输入以下代码: user> (def stooges (vector "Moe" "Larry" "Curly")) #'user/stooges user> (contains? stooges "Moe") false 这难道不是真的吗?非常感谢您的帮助。向量类似于数组。如果集合中存在键,则返回true。您应该查找“键/索引”0、1或2 user=> (def stooges (vector "Moe" "La
user> (def stooges (vector "Moe" "Larry" "Curly"))
#'user/stooges
user> (contains? stooges "Moe")
false
这难道不是真的吗?非常感谢您的帮助。向量类似于数组。如果集合中存在
键,则返回true
。您应该查找“键/索引”0、1或2
user=> (def stooges (vector "Moe" "Larry" "Curly"))
#'user/stooges
user=> (contains? stooges 1)
true
user=> (contains? stooges 5)
false
如果您使用的是哈希
user=> (def stooges {:moe "Moe" :larry "Larry" :curly "Curly"})
#'user/stooges
user=> (contains? stooges :moe)
true
user=> (contains? stooges :foo)
false
正如mikera所建议的,你可能想要像这样的东西,这是一个常见的陷阱!我记得当我刚开始接触Clojure时,我就陷入了这样的境地:-)
检查集合中是否存在索引(0、1、2等)
您可能需要以下内容:
(some #{"Moe"} stooges)
=> "Moe" <counts as boolean true>
(some #{"Fred"} stooges)
=> nil <counts as boolean false>
(defn contains-value? [element coll]
(boolean (some #(= element %) coll)))
(contains-value? "Moe" stooges)
=> true
包含?支持集,如果使用clojure-1.4
user=> (contains? #{:a, :b} :a)
true
user=> (contains? (set stooges) "Moe")
true
我懂了。谢谢你的帮助。当我用一台电视机的时候,我想做的一切都起作用了。非常好。这真的很有用。谢谢。contains?
回答问题:“调用get
会给我一个实际在集合中的值吗?”这是包含nil
或false
的集合的一个重要区别。