我很好奇,所以我检查了交换的源代码!clojure 存储库上的函数,它是这样的:
(defn swap!
"Atomically swaps the value of atom to be:
(apply f current-value-of-atom args). Note that f may be called
multiple times, and thus should be free of side effects. Returns
the value that was swapped in."
{:added "1.0"
:static true}
([^clojure.lang.Atom atom f] (.swap atom f))
([^clojure.lang.Atom atom f x] (.swap atom f x))
([^clojure.lang.Atom atom f x y] (.swap atom f x y))
([^clojure.lang.Atom atom f x y & args] (.swap atom f x y args)))
而且我不知道“ .swap ”功能在做什么?我试图搜索它,但它没有在同一个文件中定义,所以找不到它的定义。或者这是另一个实际上根本不是函数的特殊事物?