當我使用[]
時,表達式被編譯爲cljs.core.PersistentVector.EMPTY
,看起來像所有表達式[]
都映射到同一個對象。我已經讀過,我shouldn't use new Array()
。那還值得關注嗎?在Clojurescript中創建一個新數組
由於我打算在此數組上調用aset
,因此每次調用時都需要一個新對象。我會怎麼做?
當我使用[]
時,表達式被編譯爲cljs.core.PersistentVector.EMPTY
,看起來像所有表達式[]
都映射到同一個對象。我已經讀過,我shouldn't use new Array()
。那還值得關注嗎?在Clojurescript中創建一個新數組
由於我打算在此數組上調用aset
,因此每次調用時都需要一個新對象。我會怎麼做?
除非你正在做JavaScript互操作,你應該只使用持久性向量。如果你真的需要製作一個陣列,你可以使用(array)
。
現在在ClojureScript中有相當整齊的符號。你可以輸入#js []
,編譯器會把它當作原生JS數組。與對象一起工作,如下所示:#js {:one 1 :two 2}
。這樣的東西將被編譯爲裸露的JS對象。
也許有了一些代碼,即使它是JS我們可以幫助你更好地看到clojurescript中的慣用方式 – Joaquin