类似于 CLJS-2113,但针对 {{aget}}
Clojure
用户=> (aget (to-array [nil 1]) -1) ArrayIndexOutOfBoundsException -1 clojure.lang.RT.aget (RT.java:2336) 用户=> (aget (to-array [nil 1]) 0) nil 用户=> (aget (to-array [nil 1]) 0.5) nil 用户=> (aget (to-array [nil 1]) 1) 1 用户=> (aget (to-array [nil 1]) 1.5) 1 用户=> (aget (to-array [nil 1]) 2) ArrayIndexOutOfBoundsException 2 clojure.lang.RT.aget (RT.java:2336)
ClojureScript
cljs.user=> (aget (to-array [nil 1]) -1) nil cljs.user=> (aget (to-array [nil 1]) 0) nil cljs.user=> (aget (to-array [nil 1]) 0.5) nil cljs.user=> (aget (to-array [nil 1]) 1) 1 cljs.user=> (aget (to-array [nil 1]) 1.5) nil cljs.user=> (aget (to-array [nil 1]) 2) nil
请注意,Clojure 将索引向下取整为最近的整数,而 ClojureScript 则不这样做
(aget (to-array [1 2]) 0.5)
在 Clojure 中返回 {{1}},在 ClojureScript 中返回 {{nil}}。
(推测,类似的 结果对 {{aset}} 也适用。)