Jos*_*ver 33 clojure naming-conventions
当我在Clojure中定义私有函数时,我通常使用-前缀作为可视指示符,该函数不能在我的命名空间之外使用,例如
(defn- -name []
(let [formatter (formatter "yyyy-MM-dd-HH-mm-ss-SSSS")]
(format "fixjure-%s" (unparse formatter (now)))))
Run Code Online (Sandbox Code Playgroud)
但是这个-前缀在使用时似乎也是公共方法的惯例gen-class.
是否有任何普遍接受defn-的Clojure社区中的d函数约定,或者我应该只使用非前缀名称?
似乎clojure.contrib中的许多代码(可能它安静地使用)使用普通名称作为私有函数,所以也许这是最好的,但我真的很喜欢视觉指示器 - 也许我的C/Perl背景太强了!;)
Isa*_*aac 45
没有惯例; 视觉指示器在没有内置私人功能概念的语言中很流行.由于Clojure定义的函数defn-在其命名空间之外是不可见的,因此不需要使用uglifier为函数添加前缀;)
那么你做什么,但你可能想要像其他社区一样做,只是正常命名!它会让你的生活更轻松.
Jul*_*ang 23
我不知道任何命名约定,但您可以附加^:private元数据标记来定义私有函数.这完全等同于defn-,但有点清楚,恕我直言.
(defn ^:private foo [])
Run Code Online (Sandbox Code Playgroud)