You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clojure中clojure.core/atom的命名约定:!前缀是否为通用规范?

Clojure社区中Atom变量的命名约定

关于!前缀的命名约定

你在Reagent文档里看到的!video这种!前缀命名方式,是Reagent生态圈内比较常见的习惯,用来直观标识这个变量是可变状态容器(比如atom、Reagent的ref这类),和不可变的值做区分,提升代码可读性。但它并不是Clojure全社区广泛认可的通用约定,更多是特定库/项目团队内部的共识用法。

你提到的代码示例:

(let [!video (clojure.core/atom nil)]
  ...)

Atom的其他常见命名约定

Clojure社区里还有几种更普遍的atom命名方式:

  • 后缀加-atom:比如video-atom,这是最直白通用的做法,直接通过后缀明确变量的类型是atom,新手也能一眼看懂
  • 星号包裹命名:比如*video-state*,这种风格源自Clojure全局动态变量的命名规范,部分团队会把它用在局部可变状态上,用来强调这是可变的状态变量
  • 语义化名称+上下文区分:如果变量名本身就带有状态含义(比如app-state、user-input),很多团队会直接用这类名称,靠代码上下文来区分它是可变的atom还是不可变值,适合团队内部有统一共识的场景

内容的提问来源于stack exchange,提问作者hata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:53:12