7
获得地图中几个可能键的第一个非零值的最佳方法是什么?在地图中获取可能值之一的习惯性方法?
实施例:
(get-first-matching {:fum 4 :bar 41 :baz 45} [:foo :bar :baz])
;=> 41
获得地图中几个可能键的第一个非零值的最佳方法是什么?在地图中获取可能值之一的习惯性方法?
实施例:
(get-first-matching {:fum 4 :bar 41 :baz 45} [:foo :bar :baz])
;=> 41
some。
user=> (some {:fum 4 :bar 41 :baz 45} [:foo :bar :baz])
41
正是我在找什么! :) – Annan 2012-01-09 15:17:31
有趣的是,这里使用的映射是作为使用键集合调用的谓词函数。因此,你会得到的不是第一个非零值,而是第一个“真值”值。例如,尝试'(一些{:foo nil:bar false:baz 20} [:foo:bar:baz])'。 – 2012-01-09 19:33:37
对,所以一个适用于nil或false值的版本看起来像'(when-let [[k v](some#(find m%)[:foo:bar:baz])] v)'。 – amalloy 2012-01-09 20:09:40