Clojure 1.13 新增了对检查键的支持

Hacker News Top 工具

摘要

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 亮点

Hacker News Top

Julia 1.13 已经发布,带来了在延迟(TTFX)、REPL 功能、哈希、垃圾回收以及其他领域的显著改进,感谢社区的贡献。

Flycheck 38:力量与魔法

Lobsters Hottest

Flycheck 38 是一个重大版本,增加了对语言服务器的内置 Eglot 支持、内联诊断注释以及应用快速修复代码操作的能力,复兴了 Emacs 的 linting 工具。

clj-refactor.el 4.0

Lobsters Hottest

clj-refactor.el 4.0,近五年来首个主要版本,引入了热依赖加载、异步重构、差异预览、瞬态菜单以及众多针对Emacs中Clojure开发的改进。

Elixir v1.20 发布:现为渐进类型语言

Lobsters Hottest

Elixir v1.20 引入了基于集合论的渐进类型,能够实现类型推断和可验证的缺陷检测,而无需开发者添加注释,这标志着该语言演进的重大里程碑。