在clojure中,聲明一個全局變量的最佳方式是什麼,其中的值需要在函數中進行更改,而此全局變量需要在Clojure中如何定義一個可以從其他名稱空間訪問的全局變量
(ns ..main
.....)
(def global_variable nil)
..
(defn main ...
Change the value of global variable here
)
Another name space
(ns accessvariable ...)
(println (main/global_variable))
什麼是做到這一點的最好辦法:在其他命名空間
防爆要訪問?
這在Clojure社區中通常被認爲是一個壞主意。爲什麼你需要這樣做?你面臨什麼問題,這將解決? –
原子是爲此而建造的。也就是說,幾乎總是有更好的方法來解決這類問題。如果您給我們更多的細節,我們可以幫助您使用Clojure的優勢解決您的問題。 – WolfeFan
謝謝@Elogent和WolfeFan。當我運行我的PGM用戶輸入一些命令行參數時,我想在多個名稱空間中的參數值不直接從我的主名稱空間調用。在Java中,我可以使用setter方法設置類/實例變量,並使用其他對象中的getter方法來獲取值。這是如何在clojure中完成的? – gechu