如何包含?在Clojure工作?
我在Clojure的一本书中发现了这段代码。你能给我解释一下如何包含?在Clojure工作?,clojure,programming-languages,Clojure,Programming Languages,我在Clojure的一本书中发现了这段代码。你能给我解释一下contains?是如何工作的吗 (contains? [1 2 3] 3) ;= false (contains? [1 2 3] 2) ;= true (contains? [1 2 3] 0) ;= true 看看下面的例子: 包含? (包含?coll键) 如果给定集合中存在键,则返回true,否则返回true 返回false。请注意,对于数字索引的集合,如 向量和Java数组,测试数字键是否在 索引范围。”包含常数或对数时间;
contains?
是如何工作的吗
(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true
看看下面的例子:
包含?
(包含?coll键)
如果给定集合中存在键,则返回true,否则返回true
返回false。请注意,对于数字索引的集合,如
向量和Java数组,测试数字键是否在
索引范围。”包含常数或对数时间;
它不会对值执行线性搜索。另见“一些”
因此,在您的示例中,
(contains?[1 2 3]3)
返回false
,因为集合[1 2 3]
在索引3
处不包含项(这意味着(get[1 2 3]3)
将返回nil
。因此名称有点混淆。Thx@TruongHa是的,如果一个集合包含一个元素,这是一个常见的错误。让所有人困惑:-)