欢迎!请查看关于页面以获取更多关于此功能的信息。
由subvec返回的向量即使原始向量有元数据也不包含元数据。
subvec
示例
(meta (subvec (with-meta [0 1 2 3 4 5] {:foo 42}) 0)) ;; nil
预期值
{:foo 42}
实时演示此处。
经过一些思考,我认为这是预期行为。通常,当在集合上进行“更新”操作(assoc、dissoc、conj、disj)时,会保留元数据。在这种情况下,subvec在概念上正在创建一个新集合,它是旧集合的子集(select-keys可能属于这一类别)。因为它是一个新集合,所以我们不会期望它从原始集合中复制元数据。