Clojure 1.13.0-alpha7 发布
Clojure 1.13.0-alpha7 现已发布!有关下载和使用信息,请参阅 下载 页面。
解构方面的新增功能
为了在运行时以更优雅的方式处理缺失的数据,可以使用 :missing 指令。该指令会将一个名称绑定到一个映射,其中键为那些在检查过的键指令中指定、但在输入映射中未找到的键,且该映射会递归地遍历嵌套的映射结构。
这会将 :keys!、:syms! 和 :strs! 的默认行为从抛出异常改为收集到指定的映射中。
如果输入的数据量超过了您计划处理的范围,您可能希望将其传递出去,例如将其与经过变换的输入重新整合后继续向下传递。此时可以使用 :excess 指令,将一个名称绑定到一个映射,该映射包含输入映射中所有未在解构形式中列出的键,并递归地遍历嵌套的映射结构。
错误修复
- CLJ-2883:Reflector.getMethods() 错误地返回了具有协变返回类型的桥接方法,导致反射调用出现问题。
- CLJ-2930:BigDec 值从 Number 类型强制转换时可能会丢失小数位。
改进与新增功能
- CLJ-1899:transform-keys——递归遍历映射并转换所有键。
- CLJ-2538:tap->——新增 tap> 变体,该变体会返回值。
- CLJ-2970:select-keys——实现上的变更,统一了解构过程中使用的 get、req! 和 select-keys 函数在参数方面的要求。
立即试用
请在您的 deps.edn 文件的 :deps 部分更新为:
org.clojure/clojure {:mvn/version "1.13.0-alpha7"}然后使用 Clojure CLI(任意版本)启动 REPL:
clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.13.0-alpha7"}}}参与讨论