Nhìn vào clojure.test
source code, tôi phát hiện những điều sau:Việc sử dụng ^: động trên xác thực là gì?
(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)
Có lợi ích hoặc lý do đằng sau việc ngăn ngừa sự tái định nghĩa (ví dụ: sử dụng defonce
) của một var được đánh dấu là ^:dynamic
?
Có thể ngăn chặn cảnh báo từ trình biên dịch về việc có var không động có tên '* something *' không? – thoferon
Sau đó, câu hỏi sẽ là lý do tại sao sử dụng earmuffs trên tên, đó là thể hiện cùng một nghĩa chính xác của '^: dynamic' trong các phiên bản cũ của Clojure. Tôi sẽ kiểm tra nếu các phiên bản trước của 'clojure.test' đang sử dụng các chiến lược' def' khác nhau cho var đó. – skuro