Patrząc na clojure.test
source code, dostrzegłem następujące:Jaki jest pożytek z ^: dynamic na defonce?
(defonce ^:dynamic
^{:doc "True by default. If set to false, no test functions will
be created by deftest, set-test, or with-test. Use this to omit
tests when compiling or loading production code."
:added "1.1"}
*load-tests* true)
Czy jest jakaś korzyść lub powodem zapobiegania redefinicji (czyli używając defonce
) o var oznaczonego jako ^:dynamic
?
Czy możliwe jest zapobieganie ostrzeżeniu kompilatora o posiadaniu nie dynamicznego var o nazwie '* something *'? – thoferon
Następnie pojawi się pytanie, dlaczego używać nauszników na nazwie, która wyraża dokładnie to samo znaczenie '^: dynamic' w starszych wersjach Clojure. Sprawdzę, czy poprzednie wersje 'clojure.test' używają różnych strategii' def' dla tego var. – skuro