【发布时间】:2011-10-06 06:02:56
【问题描述】:
谁能解释或指出我在哪里可以找到 clojure 的命名约定:
- 文件名
- 函数(据我了解,函数名称只是用短划线分隔的值)
- 变量
【问题讨论】:
标签: clojure naming-conventions
谁能解释或指出我在哪里可以找到 clojure 的命名约定:
【问题讨论】:
标签: clojure naming-conventions
在评论中记录了一组有趣的命名约定 陶恩索在他的 Encore library.
他建议使用 ! 来表示副作用,? 表示布尔值,
$ 用于昂贵的操作,_ 可减价,
* 用于宏;加上其他一些组合。
【讨论】:
有一些有趣的guidelines on naming written by Stuart Sierra 表明:
age 而不是calculate-age)create- 用于构造,get- 用于检索),保留 bang swap! 对可变引用的更改。send-message 而不是message)input-type->output-type),否则强制应该在没有箭头前缀的情况下命名输出类型(connection 而不是 ->connection)products/price 而不是 products/product-price)并防止 let 绑定中的局部冲突-fn 后缀【讨论】:
【讨论】:
您可能想查看开发者 Wiki 上的 Clojure library coding standards - 这可能是我见过的最全面的列表。
到你的具体点:
【讨论】:
this/is/a/file-parser.clj
a-b/c-d 必须驻留在 a_b/c_d.clj 中。)这是 Clojure 与 Java 正确互操作必须做的名称转换的一部分。
import Clojure 记录时,您必须在 在您的 Clojure 代码中 使用下划线来引用它的位置,而不是通常的破折号。见dev.clojure.org/jira/browse/CLJ-432
即使您没有明确要求,我也会解释一下我所看到的协议命名约定。
通常,名称以大写“I”开头,其余为驼峰式,每个单词的第一个字母大写,其余为小写。例如,我想为火箭船定义一个协议,我会使用名称 IRocketShip
我还看到使用“A”而不是“I”,可能代表“抽象”这个词。
【讨论】: