记录函数定义的惯用方法是什么(defn
)在Clojure中?特别是,我们是否应该使用"@param
", "@returns
"等来记录参数、返回值等?
在这种动态类型的语言中,是否有一些标准的方法来指定预期的参数类型(除了类型提示)?
似乎并没有很强烈的使用@param标签的倾向,尽管我认为它们可能更常见。@returns标签可能不太适用,因为把函数的全部描述放在@returns标签下会很有意义。
通常情况下,clojure.core中的代码都坚持描述函数的作用,而且很多都是以 "return "开头的。
(defn rand-nth
"Return a random element of the (sequential) collection. Will have
the same performance characteristics as nth for the given
collection."
在idomatic的clojure代码中,有一种倾向,就是尽量使用构建在序列抽象中的大多数函数,所以rand-nth的doc字符串可以看起来像。
(defn rand-nth
"@Params: any seq
@Returns a random element of the (sequential) collection. Will have
the same performance characteristics as nth for the given
collection."
所以 rand -nth 的 doc 字符串可以是: