当我使用[]
时,表达式被编译为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