我正在研究clojure庫,當我注意到一個可變字段被註釋爲^:unsynchronized-mutable。易變是可變的,但我不知道是什麼不同步部分的意思,所以我讀了docs,其中包含:什麼是語義含義:volatile-mutable與:unynchronized-mutable?
說明清楚,易變的領域是非常困難的正確使用 ,並且只存在於便於在Clojure 本身中構建更高級別的構造,如Clojure的參考類型。它們僅供專家使用 - 如果volatile-mutable或:unsynchronized-mutable的語義和影響 不是立即顯示給您的 ,則不應使用它們。
我無法得到細微差別:它是否說在實踐中,我選擇哪個可變性註釋或人們應該忘記使用可變類型?
而且,爲了好奇,在較低的抽象層次上,它們之間的語義差異是什麼?
謝謝!
這肯定是說你應該不** **使用可變領域。 – Chuck
現在,源代碼示例的鏈接已被破壞,但對於任何人現在想知道警告的來源,它在['deftype'](http://clojuredocs.org/clojure.core/deftype)的文檔字符串中。 – Mars