Mit Blick auf clojure.test
source code, entdeckte ich folgendes:Was nutzt ^: dynamic auf einem 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)
Gibt es einen Nutzen oder Grund Neudefinition verhindern (das heißt mit defonce
) eines var, die als ^:dynamic
gekennzeichnet ist?
Könnte es sein, eine Warnung des Compilers über eine nicht dynamische Variable namens '* something *' zu verhindern? – thoferon
Dann wäre die Frage, warum Ohrenschützer auf den Namen zu verwenden, die genau die gleiche Bedeutung von "^: Dynamic" in älteren Versionen von Clojure ausdrückt. Ich werde prüfen, ob frühere Versionen von 'clojure.test' verschiedene' def' Strategien für diese Var verwenden. – skuro