clojure的易變集合

  1. 只有vector、無序的map、無序的set有可變版本函數

  2. 易變集合都是clojure.lang.IEditableCollection的實例優化

  3. 易變集合不支持seq,好比(seq (transient []))線程

  4. 易變集合只能在建立這個集合的線程內操做it

  5. 易變集合只是一種優化手段,使用的時候要很是慎重,而且要控制它的使用範圍,一般限制在單個函數,或者一個庫裏的幾個相關的私有函數之間io

  6. 易變集合不能組合,不支持嵌套,好比:(persistent! (transient [(transient {})])),只有外層的可變集合會被持久化table

相關文章
相關標籤/搜索