问题标签 [splat]

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.

0 投票
3 回答
1921 浏览

haskell - Haskell 有像 Python 和 Ruby 这样的 splat 运算符吗?

在 Python 和 Ruby 中(我敢肯定,还有其他的)。您可以在枚举前面加上*("splat") 以将其用作参数列表。例如,在 Python 中:

Haskell中有类似的东西吗?我认为由于它们的任意长度,它不适用于列表,但我觉得使用元组它应该可以工作。这是我想要的一个例子:

我正在寻找允许我执行以下操作的运算符(或函数):

我见过(<*>)被称为“splat”,但它似乎与其他语言中的 splat 指的不是同一个东西。反正我试过了:

0 投票
2 回答
490 浏览

ruby - 我怎样才能 splattify 一个匿名对象,以便我可以在其上使用 &method?

&method(:method_name)当. 需要多个对象时,我想使用这个成语method_name。我可以在 Ruby 1.9 下执行此操作吗?

例如,如果我有

编码

在 Ruby 1.8 下工作,但不能在 Ruby 1.9 下工作。在 Ruby 1.9 下,它试图move_file(["foo.txt", "foo_20110915.txt"])代替move_file("foo.txt", "foo_20110915.txt").

我如何对其进行 splattify 以使其具有正确的数量?

我知道的解决方法:

  1. 替换def move_file(old_filename, new_filename)def move_file(*arguments)
  2. 替换each(&method(:move_file))
    each{|old_filename, new_filename| move_file(old_filename, new_filename)}
0 投票
1 回答
3038 浏览

ruby - 了解范围和数组中的 ruby​​ splat

我试图理解和之间的*(1..9)区别[*1..9]

如果我将它们分配给变量,它们的工作方式相同

但是当我尝试直接使用*(1..9)和时事情变得很奇怪[*1..9]

我猜部分问题在于操作员的偏好?但我不确定发生了什么。为什么我不能使用*(1..9)我可以使用的相同[*1..9]

0 投票
1 回答
137 浏览

ruby - 什么是 Ruby 中的星号变量?

带星号的变量是什么样的*arr

0 投票
1 回答
1814 浏览

matlab - Matlab 中是否有 splat 运算符(或等效运算符)?

如果我有一个数组(直到运行时长度未知),有没有办法以数组的每个元素作为单独的参数来调用函数?

像这样:

上下文:我有一个n-d 数组的索引列表,Q. 我想要的是类似的东西Q(a,b,:),但我只有[a,b]。由于我不知道n,我不能只对索引进行硬编码。

0 投票
2 回答
431 浏览

c - 在 Ruby/Inline C 中接受未定义数量的参数

我正在尝试使用带有 Ruby 的内联 C 重写一个高度递归的函数。该函数接受未定义数量的参数,即在 Ruby 中它看起来像这样:

我正在尝试使用以下代码在 inline C 中模仿这一点:

但这会产生编译错误:

这是在 C 中完成此任务的正确方法吗?如果是这样,什么可能导致此错误?如果没有,它是如何完成的?

0 投票
1 回答
802 浏览

ruby - 在构造函数中使用 splat 运算符是否有效?

在构造函数中,您经常希望将参数转换为实例变量。一种天真的方法是:

但更简单的方法是:

但我担心代码的速度,因为看起来后面的代码正在创建一个args在前面的代码中没有创建的额外数组。从速度或效率的角度来看,是坚持前者而不使用后者更好,还是没有区别?

0 投票
2 回答
160 浏览

higher-order-functions - 是否有返回其参数的位置扩展版本的函数的名称?

splatter在此 Python 代码中考虑:

在 n 个压缩序列上映射一个 n 元函数似乎是一个足够常见的操作,可能已经有一个名称,但我不知道在哪里可以找到它。它模糊地唤起了柯里化,似乎还有其他相关的以争论为中心的 HOF,我从未听说过。有谁知道这是否是“众所周知”的功能?在讨论它时,我目前被问题标题中使用的尴尬语言所困扰。

编辑

哇,Pythonmap会自动执行此操作。你可以写:

它会做正确的事,为您省去splatter编写函数的麻烦。唯一的区别是zip返回一个列表,其长度是其最短参数的长度,而map用 .extends 扩展较短的列表None

0 投票
1 回答
507 浏览

ruby - Ruby 的一元 * 运算符

可能重复:
* 运算符在 Ruby 中对这个字符串做了什么

在寻找将数组转换为哈希的简单方法时,我遇到了以下代码(类似于 .Net 在 IEnumerable 上的 ToDictionary 方法......我希望能够任意设置键和值)。

我的问题是,前面的星号有什么作用a.collect

顺便说一句,代码来自http://justatheory.com/computers/programming/ruby/array_to_hash_one_liner.html

0 投票
2 回答
2536 浏览

python - 您可以将关键字参数扩展与常规关键字参数结合起来吗?

我想做的是:

但这不起作用。有没有办法将字典扩展与显式参数结合起来,或者我需要在第二个字典中定义显式参数,合并两者,然后扩展结果?