clojure.core/atom 的 simbol 命名约定,如 Clojure 中的 !foo

hat*_*ata 2 clojure

!video我在试剂文档上找到了命名。

(let [!video (clojure.core/atom nil)]
...)
Run Code Online (Sandbox Code Playgroud)

https://github.com/reagent-project/reagent/blob/master/doc/FAQ/UsingRefs.md

我喜欢这个表示突变的前缀规则!,但我找不到任何信息表明它是 Clojure 社区中广泛认可的约定。您是否了解是否存在这样的约定?或者,是否有其他命名约定来表示atom变量?

Tho*_*ler 6

我喜欢这个前缀规则!表示突变

这并不表示“突变”,它表示引用类型。就像具有价值的东西一样,它可能会随着时间的推移而改变。

至于你的问题,你大概可以问10个人,得到10个不同的答案。这是非常主观的。最后,这是否在任何地方都被“广泛认可”重要吗?如果它对您或您的团队有意义,请务必使用它。约定只有在您认为有用时才有用。只要你始终如一,做什么都没关系。恕我直言。

!我个人不喜欢这个特殊的前缀,因为我觉得@!video视觉上“吵闹”。然而,我同意“标记”名称以表示它们所代表的内容绝对有用。我倾向于使用-ref后缀,所以video-ref而不是!video. 我从未见过其他人这样做,但我仍然喜欢它。

  • `-ref` 是个好主意,我们在末尾使用 `*` 来指示您需要 `deref` 符号来获取值。 (4认同)