gpt4 book ai didi

clojure - clojure 中的解构 - 嵌入式 map

转载 作者:行者123 更新时间:2023-12-02 05:12:05 25 4
gpt4 key购买 nike

我在环形处理程序函数中遇到了以下解构 -

[{{:keys [params remote]} :params :as request}]

很奇怪,这是我第一次看到两层牙套。 clojure 是否支持 n 级解构?我在上面假设 :params 映射被解构为 [params remote] ?

最佳答案

是的,Clojure 支持解构嵌套数据结构,虽然我不知道它是否支持任意深度的嵌套。这是一个解构映射的简单示例,其中两个键之一具有对应值的向量:

(let [{[x y] :pos c :color}
{:color "blue" :pos [1 2]}]
[x y c])

您的示例不止于此,因为它还使用了 :keys 指令,该指令绑定(bind)了一个与 map 键同名的局部变量。以下是等价的:

(let [{{:keys [params remotes]} :params}
{:params {:params "PARAMS" :remotes "REMOTES"}}]
[remotes params])

(let [{{params :params remotes :remotes} :params}
{:params {:params "PARAMS" :remotes "REMOTES"}}]
[remotes params])

两者都评估为 ["REMOTES""PARAMS"]

关于clojure - clojure 中的解构 - 嵌入式 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com