Clojure 1.13 新增了对检查键的支持
摘要
Clojure 1.13.0-alpha1 已发布,新增了用于映射解构的检查键,强制要求必需键并在缺失时抛出异常,以及其他改进。
暂无内容
查看缓存全文
缓存时间: 2026/07/06 17:05
# Clojure - Clojure 1.13.0-alpha1
来源:https://clojure.org/news/2026/07/02/clojure-1-13-alpha1
*2026年7月2日* *Alex Miller*
Clojure 1.13.0-alpha1 现已可用!请到 Downloads(https://clojure.org/releases/downloads)页面查找下载和使用信息。
## https://clojure.org/news/2026/07/02/clojure-1-13-alpha1#_checked_keys检查键
现在,您可以通过使用 `:keys` / `:syms` / `:strs` 指令的新检查变体——`:keys!` / `:syms!` / `:strs!`,来确保在映射解构时所需的键已绑定,若键不存在则会抛出异常。此外,在所有指令中,您还可以在 `&` 之后指定不会被绑定的键,用于文档记录或检查目的。
- CLJ-2961 (https://clojure.atlassian.net/browse/CLJ-2961) 检查键
- CLJ-2960 (https://clojure.atlassian.net/browse/CLJ-2960) 检查键的规范
- CLJ-2949 (https://clojure.atlassian.net/browse/CLJ-2949) `req!` – `get` 的变体,在找不到键时报告错误
- CLJ-2954 (https://clojure.atlassian.net/browse/CLJ-2954) let/loop/let* – 禁止将 `&` 作为局部绑定
## https://clojure.org/news/2026/07/02/clojure-1-13-alpha1#_other_changes_since_clojure_1_12_5自 Clojure 1.12.5 以来的其他更改
- 仅包含关键字键的 PersistentArrayMap 现在在转换为 PersistentHashMap 之前,其增长上限为 64 个元素(之前为 8 个)。在此范围内,PAM 的身份扫描比 PHM 查找效率更高,同时也使更多调用点变为单态,从而更容易优化。
- CLJ-2891 (https://clojure.atlassian.net/browse/CLJ-2891) 移除了静态初始化常量上的 ACC_FINAL 标记。此更改是为了将 Java 字节码基线迁移以应对新的验证器检查而做的准备工作。
- 运行时和测试依赖项已更新至最新版本。
## https://clojure.org/news/2026/07/02/clojure-1-13-alpha1#_try_it_out试用
更新您的 deps.edn 中的 :deps:
```
org.clojure/clojure {:mvn/version "1.13.0-alpha1"}
```
使用 Clojure CLI(任意版本)启动 REPL:
```
clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.13.0-alpha1"}}}
```
相似文章
Julia 1.13 亮点
Julia 1.13 已经发布,带来了在延迟(TTFX)、REPL 功能、哈希、垃圾回收以及其他领域的显著改进,感谢社区的贡献。
@freeCodeCamp: Clojure 是一种函数式编程语言,能改变你对编写代码的思考方式。在这份互动指南…
一份互动指南,通过动画代码回放和动手练习介绍 Clojure 编程,涵盖函数、不可变数据、递归等。
Flycheck 38:力量与魔法
Flycheck 38 是一个重大版本,增加了对语言服务器的内置 Eglot 支持、内联诊断注释以及应用快速修复代码操作的能力,复兴了 Emacs 的 linting 工具。
clj-refactor.el 4.0
clj-refactor.el 4.0,近五年来首个主要版本,引入了热依赖加载、异步重构、差异预览、瞬态菜单以及众多针对Emacs中Clojure开发的改进。
Elixir v1.20 发布:现为渐进类型语言
Elixir v1.20 引入了基于集合论的渐进类型,能够实现类型推断和可验证的缺陷检测,而无需开发者添加注释,这标志着该语言演进的重大里程碑。