我在REPL中玩耍,我有一些奇怪的行为:
Clojure 1.4.0
user=> (type {:a 1})
clojure.lang.PersistentArrayMap
user=> (def x {:a 1})
#'user/x
user=> (type x)
clojure.lang.PersistentHashMap
Run Code Online (Sandbox Code Playgroud)
我认为所有小的文字地图都是实例PersistentArrayMap,但显然情况并非如此def.为什么要使用defClojure为我的litte地图选择不同的表示?我知道这可能只是一些奇怪的实现细节,但我很好奇.