怎么包含?在Clojure工作?

时间:2013-07-19 09:56:24

标签: clojure programming-languages

我在Clojure的一本书中看到了这段代码。你能解释一下contains?是如何运作的吗?

(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true

1 个答案:

答案 0 :(得分:5)

只需查看documentation

  

<强>包含吗

     

(包含?coll键)

     

如果给定集合中存在key,则返回true,否则返回true   返回false。请注意,对于数字索引集合,例如   向量和Java数组,这测试数字键是否在   索引范围。 “包含?”操作恒定或对数时间;   它不会对值执行线性搜索。另见'some'。

因此,在您的示例中,(contains? [1 2 3] 3)返回false,因为集合[1 2 3]不包含索引3处的项目(这意味着(get [1 2 3] 3)会返回nil)。