Существует ли соглашение w120 для присвоения имен частным функциям?
Когда я определяю частную функцию в Clojure, я обычно использую префикс -
как визуальный индикатор того, что эта функция не может использоваться вне моего пространства имен, например
(defn- -name []
(let [formatter (formatter "yyyy-MM-dd-HH-mm-ss-SSSS")]
(format "fixjure-%s" (unparse formatter (now)))))
Но префикс -
, по-видимому, также является условным для общедоступных методов при использовании gen-class
.
Существует ли общепринятое соглашение для defn-
'd функций в сообществе Clojure или я просто использую имена без префикса?
Кажется, что много кода в clojure.contrib(может ли он покоится в покое) использует обычные имена для частных функций, поэтому, возможно, это лучше всего, но мне очень нравится визуальный индикатор - возможно, мой фон C/Perl слишком силен!;)
Ответы
Ответ 1
Там нет конвенции; визуальный индикатор распространен на языках, не имеющих встроенного понятия частных функций. Поскольку функции Clojure, определенные с помощью defn-
, не видны за пределами их пространства имен, нет необходимости префиксных функций с помощью uglifier;)
Так делайте то, что вы, но, но вы, вероятно, должны просто сделать так, как это делает остальная часть сообщества, и просто назвать их нормально! Это облегчит вам жизнь.
Ответ 2
Я не знаю никаких соглашений об именах, но вы можете прикрепить тег метаданных ^:private
для определения частных функций. Это в точности эквивалентно defn-
, но немного яснее, IMHO.
(defn ^:private foo [])