• 等价

    等价

    cljs 的数据结构是在 js 基础之上实现的. 数值类型的数据可以直接判断.
    一般通过 (= a b) 判断 ab 的内容是否一致.
    Collection 类型数据除了 = 函数之外,
    还可以使用 identical? 函数判断两个数据的引用是否一致.

    1. (identical? {} {})
    2. ; true
    3. (identical? {:a 1} {:a 1})
    4. ; false
    5. (= {:a 1} {:a 1})
    6. ; true
    7. (def a {a 1})
    8. ; #'cljs.user/a
    9. (identical? a a)
    10. ; true

    判断引用所需要的步骤往往很少, 所以几乎没有多少开销.
    而递归判断内容一致很可能需要对数据结构进行遍历, 影响性能.