- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 Clojure 写的越多,我越遇到以下这种模式:
(defn mapkeys [foo bar baz]
{:foo foo, :bar bar, :baz baz})
在某种意义上,这看起来像是解构的逆过程
(let [{:keys [foo bar baz]}] ... )
会实现。
在 Clojure 中是否有一种“内置”方式来实现与上述 mapkeys
(将名称映射到关键字=>值)类似的东西 - 可能是任意长度的名称列表?
最佳答案
没有内置这样的东西,因为它不需要。与相当复杂的解构不同,在 Clojure 中构建映射非常简单,因此普通库可以采用奇特的方式来实现。例如,我很久以前写过 flatland.useful.map/keyed
,它反射(reflect)了 map 解构的三种模式:
(let [transforms {:keys keyword
:strs str
:syms identity}]
(defmacro keyed
"Create a map in which, for each symbol S in vars, (keyword S) is a
key mapping to the value of S in the current scope. If passed an optional
:strs or :syms first argument, use strings or symbols as the keys instead."
([vars] `(keyed :keys ~vars))
([key-type vars]
(let [transform (comp (partial list `quote)
(transforms key-type))]
(into {} (map (juxt transform identity) vars))))))
但如果你只关心关键字,而不需要文档字符串,它可能会更短:
(defmacro keyed [names]
(into {}
(for [n names]
[(keyword n) n])))
关于clojure - :keys destructuring: construct map from sequence的逆过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66951309/
有 destructuring-bind 但似乎没有 destructuring-setq。是否可以使用 destructuring-bind 来定义它? (let (a b c d) (dest
我遇到了一个我无法解决的丑陋问题。我是 React 的初学者。 这是我的代码 handleCheckChildElement(event) { let items = this.state.i
在 React 项目中,我想通过在特定时间记录特定状态部分来快速解决问题。 console.error('this.state.thing', this.state.thing); 这样做,我的 ES
hylang 是否像 clojure 中那样支持映射解构? 例如:https://gist.github.com/john2x/e1dca953548bfdfb9844#maps 最佳答案 Hy 没有
我正在尝试解构绑定(bind),如下所示: (destructuring-bind (a b) '(1 2) (list a b))) 当我在 REPL 中评估它时,我得到:
我已启用 SeriLog(最新版本)自记录功能,并且看到数百条消息说 Maximum destructuring depth reached 不知道这意味着什么以及这是否是我需要担心的问题。 有谁知道
我正在编写一个小型 React Native 应用程序,并且正在尝试使用 Flow,但我无法在任何地方真正获得有关它的正确教程。 我不断收到错误:关于此代码第一行中的 ({ station }) 的解
在 modules 文件夹中设置 redux 文件: \modules \application \actions application.js
我收到 JavaScript 错误 "missing = in destructuring declaration" 可能是什么问题? 最佳答案 这不是标准的 JavaScript 错误。它来自您的编
我正在使用一些像这样的解构: const { item } = content console.log(item) 但是我应该如何处理 content === undefined - 这会引发错误?
法拉第扫描函数的来源( https://github.com/ptaoussanis/faraday/blob/master/src/taoensso/faraday.clj#L1197 )有一个我正
我应该如何重写以下行以避免出现此错误 ctrl.formData.type = ctrl.types[0]; 最佳答案 根据 prefer-destructuring docs 调整规则配置应该避免这
有没有办法把下面的代码写得短一些? const { user } = JWT.verify(req.params.token, keys.secretOrKey); const { email } =
以下代码: export const myFunction = ({ option1, option2 }) => {}; ...给出: destructuring. Missing annotati
我有这个功能: const calculateTotal = (items) => { return items.reduce((totalPrice, basketItem) => {
我试图将应用程序下的所有组件包装在一个上下文中以提供我想要的东西 (如您所见,这是我的 UserContext 组件) enter code here import React, { useStat
这段代码有什么问题吗? class App extends React.Component { constructor(props) { super(props); this.st
我正在尝试编写一个宏,该宏扩展为具有解构的 let 形式。我的问题是我想拥有以 let 形式定义的符号列表,包括通过解构获得的符号列表。 用例 我试图排除这种行为,例如验证: (let [a (foo
嘿,我有这样的 uiTypes.js 文件: export default { SELECT_ITEM: 'SELECT_ITEM', DESELECT_ITEM: 'DESELECT_ITE
刚刚开始使用 Flow,但似乎无法理解它希望我为解构对象(例如 props)添加类型来做什么 即 render({ count }, { displayHelp }) { 抛出类似的错误 16:
我是一名优秀的程序员,十分优秀!