我在一本 Clojure 书中看到了这段代码。你能解释一下我是如何contains?
工作的吗?
(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true
我在一本 Clojure 书中看到了这段代码。你能解释一下我是如何contains?
工作的吗?
(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true
只需查看文档:
包含?
(包含?coll键)
如果给定集合中存在 key,则返回 true,否则返回 false。请注意,对于像向量和 Java 数组这样的数字索引集合,这会测试数字键是否在索引范围内。“包含?” 以恒定或对数时间运行;它不会对值执行线性搜索。另见“一些”。
因此,在您的示例中,(contains? [1 2 3] 3)
返回false
是因为集合[1 2 3]
不包含索引处的项目3
(这意味着(get [1 2 3] 3)
将返回nil
)。