所以我有两个可以是任何东西的地图,我想合并它们,但不包括为零的值。假设我有:
(def x {:a "A" :c 5 :d "D"})
(def y {:a 1 :b 2 :c nil})
Run Code Online (Sandbox Code Playgroud)
我想结束
{:a 1 :b 2 :c 5 :d "D"}
Run Code Online (Sandbox Code Playgroud)
如果我只是像 (merge xy) 那样合并,我会得到错误的 :c 值,但是 {:c nil} 在那里。我无法控制进入的两张地图。任何帮助将不胜感激
我想将哈希映射的所有键值对传递到函数中,但不是整个哈希映射。
所以我有一个我无法改变的功能,看起来像这样:
(defn foo [a b c & {:keys [x y z]}]
(println x y z))
Run Code Online (Sandbox Code Playgroud)
我有一个哈希图,它将具有可变数量的键和值。假设一个实例是:
(def bar {:d 1
:e 2
:x "x"
:y "y"})
Run Code Online (Sandbox Code Playgroud)
如何在不传递整个哈希图的情况下将所有键值对调用传递到 foo 中?我想要做
(foo "a" "b" "c"
:d 1
:e 2
:x "x"
:y "y")
Run Code Online (Sandbox Code Playgroud) 我有一些地图的懒惰序列。
我想遍历每个地图并执行:
if (= :b "this one") 然后将 :c 更改为 99。
({:a 1
:b "this one"
:c 100}
{:a "A"
:c "Q"
:z "Z"})
Run Code Online (Sandbox Code Playgroud)