欢迎!请访问 关于 页面获取更多关于这个站点如何工作的信息。
由 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 可能也在这个类别中)。因为这个是新集合,我们不会期望它能从原始的获取元数据的副本。