2024 Clojure状态调查!分享您的观点。

欢迎!请查看关于页面以了解更多关于此功能的信息。

0
集合
:or 的名称暗示它应该像 "或" 一样行为并且是 "懒" 的,但实际上目前并不是这样。
以下片段显示了问题。:x 在映射中存在,但我们评估了默认值


(defn foo
  [{:keys [x]
    :or {x (println :set-default)}}]
  x)
 
 
 
user> (foo {:x 1})
:set-default
1

3 答案

0

评论由:gshayban 提出

1.2 - 目前所有行为都是这样,这似乎并不是最近的变化。

0

评论由:mpenet 提出

是的,我认为这可能是一个回归,但一点也不确定。
看起来更改当前的行为应该是安全的,我不认为它会破坏任何人的代码。

0
参考资料:https://clojure.atlassian.net/browse/CLJ-1676(由 mpenet 报告)
...