2

asetがチェーンされているclojurescriptで結果を見つけました:

(def data (js-obj))
(-> data 
    (aset "a" "a")
    (aset "b" "b"))

(aget data "a") ;=> "a"
(aget data "b") ;=> 'returns nothing'

一方

(-> 1 inc dec) ;=> returns 1, which is fine
4

2 に答える 2

6

Ankur は、なぜこれが起こるのかについて正しいです。それを「回避」するには、より意味的にわかりやすいものを使用する必要があります。

(doto data
      (aset "a" "a")
      (aset "b" "b"))
于 2012-06-01T18:10:02.033 に答える
5

aset配列オブジェクト自体ではなく、挿入された要素を返します。したがって、「b」の場合、data前の「a」呼び出しからスレッド化されません。

于 2012-06-01T09:32:43.723 に答える