问题标签 [destructuring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 解构返回未定义的变量
我正在尝试 ES6 的新解构特性,但在理解它或让它工作时遇到了一些麻烦。
我希望在控制台中看到,"asd"
但function() { ... }
我得到undefined
了两者。
使用火狐 28.0
clojure - 解构:这怎么可能起作用?
作为对 SO 问题的回答,我正在构建一个循环函数,并构建了我迄今为止最复杂的解构,它奇迹般地起作用:
但我不知道为什么它应该工作。中r
使用的recur
是一个集合,这会使原始函数失败。
我想在apply recur
那里使用类似的东西,但由于recur
是一种特殊形式,这是不可能的。所以我尝试不使用它并且它有效。是否recur
具有神奇的自动应用属性,或者还有其他我没有看到的东西。
scala - 我可以将 Scala 列表解构(模式提取)成重用的 var 吗?
我有一个 Scala 列表。我可以将列表解构为一些变量:
但是,我似乎无法将相同的变量重用于另一个解构:
编译器告诉我它需要一个分号,但找到一个等号。为什么是这样?解构时不能使用已经声明的变量吗?我在做傻事吗?
macros - let forms : 如何访问宏中的解构符号?
我正在尝试编写一个宏,该宏扩展为具有解构的 let 形式。我的问题是我想拥有以 let 形式定义的符号列表,包括通过解构获得的符号列表。
用例
我试图排除这种行为,例如验证:
建议的解决方案
通过某种and-let
我可以这样调用的宏来实现这一点真的很好:
我错过了什么
但是我缺少某种访问以 let 形式绑定的符号列表的方法。如果我有类似list-bound-symbols
函数的东西,我可以这样做:
有没有人知道我该怎么做?
map - 存储解构映射以供以后使用
我一直试图让它与引用、引用拼接、评估以及我能想到的任何其他东西一起使用,但到目前为止还没有运气。我理解为什么它不起作用 - 它被视为一张地图,它正在尝试评估a
,b
和c
- 只是不知道如何绕过它。
我有一个相当复杂的解构地图,我正在考虑多次使用它,所以把它藏在某个地方似乎是个好主意。也许有更好的方法来解决它?
emacs - 是否有 emacs lisp splat 运算符或执行此类操作的其他方式?
我有一个对变量列表进行操作的运算符,如下所示:
我需要选择(取决于我们将调用的布尔变量my_bool
)向此列表添加一个额外的参数,以便函数调用如下所示:
我的第一个想法是用这样的 if 块来做到这一点:
但这将导致 nil if mybool
is equal to nil
which is not allowed by the function syntax。
我的第二个想法是,也许我们可以过滤列表中的 nil 并将其删除,但我们无法这样做,因为首先出现的是 nil (或者我想不出办法,我很乐意被证明是错误的,只是在寻找解决方案)。
我的第三个想法是,如果我们有一个像 rubies 这样的 splat 运算符,我们可以过滤然后 splat 并且所有内容都会被整理出来,就像这样:
但我一直无法找到一个 splat 运算符(从技术上讲是一个列表解构运算符)(PS 上面的代码是近似的,因为它是一个不起作用的解决方案,所以我确定在那里。
所以我的问题是如何有选择地向函数调用添加单个参数,并且如果我们不这样做,则不产生 nil 作为该参数。
在此先感谢,对不起我的菜鸟 emacs lisp 技能:(。
r - 为什么我不能使用 mapply/assign 分配给多个变量?
(作为练习)我试图通过分配给 R 中的多个变量来模拟一些语言,例如 perl 等。
现在 $a 是 1,$b 是 2,$c 是 3。
我希望这会起作用:
但它只是返回了一个名为 1,2,3 的 int 向量。
为什么这没有按预期工作?
编辑:我的问题的第一部分确实是重复的:在 R 中的一行中在 LHS 上分配多个新变量,但仍然想知道为什么我的 mapply/assign 方法不起作用。
map - 在嵌套哈希图中创建多个相同深度值的集合
这是一个名为 args 的假设 hashmap:
我的目标是收集每个 :status 键的值。它们都处于相同的深度,是 :milestones 的子级。
我越来越近了。我知道如何通过这样做来检索第一个状态的值:
最远的目标是找出哪些地图包含一个值为 1 的 :status 并为每个单独的地图创建一个新集合。
其实际应用是连接到 TeamworkPM 并使用 Google 日历同步具有“迟到”或“未完成”状态的里程碑。
在这种情况下,所需的输出将是 {1, 2, 1}。最终目标是拥有
clojure - Clojure:“java.lang.IllegalArgumentException:没有为键提供值:”当我更改要求时
我的java.lang.IllegalArgumentException: No value supplied for key:
Clojure 代码中有一个。
我知道当我试图解构作为参数传递的映射中的键时会发生这种情况。
然而,这里奇怪的是,这个函数多年来一直运行良好,数据相同。唯一似乎不同的是我现在如何导入函数
这是错误:
这是抛出它的函数。
换句话说,我要求地图包含名为style
and的键,并且给它一个包含名为andpoints
的键的地图。style
points
这段代码几个月来一直运行良好。
不同之处在于我现在使用sshapes/scale
wheresshapes
被导入的地方来调用它:
而以前我只是将其称为scale
scale 进入命名空间的地方
这会导致那种错误吗?
python - Python赋值解构
这三个表达式似乎是等价的:
它们编译成相同的代码吗?
哪个更pythonic?