clojure - Clojure 记录上的关联和分离

标签 clojure

为什么assoc的返回类型有差异和 dissoc在 Clojure 中,他们的论点何时被记录?我的意思是 assoc 'ing 一个不存在的键仍然返回一条记录,但 dissoc 'ing 一个现有的键返回一个映射。

但是,从某种意义上说,两者都应该生成 map 或记录,但不会表现出不同的行为。这种不同的原因是什么?

最佳答案

记录实例保证包含在记录定义中声明的所有字段。

从实例中删除声明的字段时,将违反此保证。因此返回 map 。

显然,它们不能保证排除所有未在记录定义中声明的字段,因此可以将新字段添加到实例中。

关于clojure - Clojure 记录上的关联和分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210238/

相关文章:

clojure - Clojure 中数字的绝对值

Clojure 向量作为函数参数

Clojure 盒 : Problem with classpath (noob question)

clojure - 将函数作为Clojure中的参数传递

clojure - 如何在 clojure 中得到 "def"而不重新加载?

clojure - J 编程语言 vs R 编程语言 vs Incanter

clojure - 接地 channel 仍在层流中积聚

sql - for 构造中的 SQL 连接发生了什么?

clojure - 在映射函数中使用互操作构造函数(Clojure)

clojure - 从较小的流创建无限流