zca*_*ate 2 clojure clojurescript
我发现一个结果是clojurescript,因为aset是链接的:
(def data (js-obj))
(-> data
(aset "a" "a")
(aset "b" "b"))
(aget data "a") ;=> "a"
(aget data "b") ;=> 'returns nothing'
Run Code Online (Sandbox Code Playgroud)
而
(-> 1 inc dec) ;=> returns 1, which is fine
Run Code Online (Sandbox Code Playgroud)
Ankur对于这种情况发生的原因是正确的; 要"解决"它,你应该使用更具语义描述性:
(doto data
(aset "a" "a")
(aset "b" "b"))
Run Code Online (Sandbox Code Playgroud)