小编Evg*_*nov的帖子

sorted-map返回现有密钥的nil值

我试图通过排序的地图获取值,并使用比较器返回值nil.

(def tmap {1 {:v 1} 2 {:v 2} 3 {:v 3}})

(def tmap-sorted
  (apply sorted-map-by
         #(let [val-comp (- (compare
                             (get-in tmap [%1 :v])
                             (get-in tmap [%2 :v])))]
            (if (= val-comp 0)
              1
              val-comp))
         (flatten (vec tmap))))
; => {3 {:v 3} 2 {:v 2} 1 {:v 1}}

(get tmap-sorted 3)
;=> nil
Run Code Online (Sandbox Code Playgroud)

预期: {:v 3}

实际: nil

clojure

3
推荐指数
1
解决办法
168
查看次数

标签 统计

clojure ×1