【发布时间】:2013-07-18 13:40:25
【问题描述】:
我在一本 Clojure 的书中看到了这个 sn-p 代码。你能解释一下contains? 的工作原理吗?
(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true
【问题讨论】:
标签: clojure programming-languages
我在一本 Clojure 的书中看到了这个 sn-p 代码。你能解释一下contains? 的工作原理吗?
(contains? [1 2 3] 3)
;= false
(contains? [1 2 3] 2)
;= true
(contains? [1 2 3] 0)
;= true
【问题讨论】:
标签: clojure programming-languages
包含?
(包含?coll键)
如果给定集合中存在key,则返回true,否则 返回假。请注意,对于数字索引的集合,如 向量和 Java 数组,这将测试数字键是否在 指数范围。 “包含?”以恒定或对数时间运行; 它不会对值执行线性搜索。另见“一些”。
因此,在您的示例中,(contains? [1 2 3] 3) 返回false,因为集合[1 2 3] 不包含索引3 处的项目(这意味着(get [1 2 3] 3) 将返回nil)。
【讨论】: