【问题标题】:How contains? in Clojure work? [duplicate]如何包含?在 Clojure 工作? [复制]
【发布时间】: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


    【解决方案1】:

    看看documentation

    包含?

    (包含?coll键)

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

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

    【讨论】:

    • 所以这个名字有点混乱。谢谢
    • @TruongHa 是的,认为它表示集合是否包含元素的常见错误。让每个人都感到困惑:-)
    猜你喜欢
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2013-12-19
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多