可変フィールドに^:unsynchronized-mutable の注釈が付けられていることに気付いたとき、私は clojure lib を研究していました。ミュータブルはミュータブルですが、非同期部分が何を意味するのかわからなかったので、以下を含むドキュメントを読みました。
ミュータブル フィールドを正しく使用するのは非常に難しく、Clojure 自体で Clojure の参照型などのより高いレベルの構造を構築しやすくするためにのみ存在することに注意してください。これらは専門家向けです。:volatile-mutable または :unsynchronized-mutable のセマンティクスと意味がすぐにわからない場合は、使用しないでください。
ニュアンスを理解できませんでした:実際には、どの可変性アノテーションを選択しても問題ないということですか、それとも可変型の使用を完全に忘れるべきだと言っているのでしょうか?
そして、好奇心のために、より低いレベルの抽象化では、それらの間のセマンティックの違いは何ですか?
ありがとう!