问题标签 [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 投票
1 回答
4657 浏览

ruby - 散列在散列上

  • 散列上的 splat 将其转换为数组。

    [*{foo: :bar}] # => [[:foo, :bar]]

    这里是否存在一些隐藏机制(例如隐式类转换),或者它是一个内置的原始特性?

  • 除了数组之外,nil在 Ruby 1.9 下,splat 运算符是和散列唯一消失/改变的东西吗?

0 投票
4 回答
17232 浏览

ruby - 哈希解构

您可以使用 splat 运算符解构数组。

但是有没有办法为了选项类型的优点而破坏哈希?

如果不是原生 ruby​​,Rails 是否添加了类似的东西?

目前我正在做这个大致

0 投票
4 回答
4431 浏览

ruby - 如何在 Ruby 中为 splat 参数设置默认值

为 splat 参数设置默认值会导致错误:

我尝试过的一些变体也不起作用:

我在这里没有看到不确定性问题,所以看起来应该是可能的。

相关: 为什么非显式 splat 参数加上默认参数是 Ruby 1.9 中方法定义的错误语法?

0 投票
2 回答
116 浏览

ruby - 请解释一下这个方法

我对这种方法中的星星有疑问:

参数列表 ( *numbers) 中的星号是什么意思?冒号 ( ) 后面的星号是什么意思1, :*

0 投票
1 回答
1094 浏览

ruby - 如何将数组作为参数列表传递

Ruby 的文档将方法签名显示为:

这对我来说看起来像一个数组,但事实并非如此。您可以将单个字符串或各种字符串作为参数传递,如下所示:


如何将数组作为参数列表传递?以下不起作用:

0 投票
1 回答
959 浏览

string - Coffeescript - 如何在通过 splat 传递字符串时检查字符串是否相等?

当其中一个字符串通过 splat 参数传递时,我无法检查两个字符串是否相等。因为coffeescript 使用严格的比较,并且因为它会在参数通过splat 时复制参数,所以如果不使用反引号,我无法正确比较字符串。有没有更好的办法?这是演示该问题的最小代码段:

输出如下:

编辑: mu 太短给了我钥匙,所以修改后的工作代码看起来像这样(除了发出之外,一切都是一样的)

0 投票
4 回答
6303 浏览

ruby - 为什么 ruby​​ 中的 splat 参数不一直使用?

我知道当我们不知道要传递的参数数量时使用 splat 参数。我想知道我是否应该一直使用 splat。每当我传递参数时,使用 splat 参数是否有任何风险?

0 投票
5 回答
329 浏览

ruby-on-rails - Ruby splat and << operators

I want to do this:

but this happens in irb:

Am I missing something?

0 投票
2 回答
126 浏览

python - 如果传递的是列表而不是列表,如何从列表或字符串本身返回第一个字符串?

我想要的映射函数的 Ruby 示例:

由于字符串在 Python 中是可迭代的,我如何应对这种语言设计失败而优雅地达到相同的结果?

0 投票
3 回答
7008 浏览

java - 模仿 splat 运算符是否有更简单的替代方法?

我发现它在 Ruby 中可用,但我从我在 Python 中所做的事情中认出了它;“splat”运算符。长话短说,我想知道是否有更简单的方法来完成我目前的工作,模仿“splat”操作员所做的事情。

我做了一个其他人可以调用的中心方法,因为我意识到我有几个非常相似的方法,除了一些小事情之外,它们都在做同样的事情。这是方法签名:

我想要求至少一个参数(scriptLocation),然后允许任意数量的额外参数。我最终要做的是创建一个ProcessBuilder. 我的愿望是做这样的事情:

但当然,ProcessBuilder构造函数只接受以下内容:

  • List<String>
  • String[]
  • String...

所以我的方法显然行不通。

据我所知,我目前的解决方法是:

(是的,我知道我不必使用List并且可以只制作一个String[]

(是的,我知道我可以循环extraArgs并单独添加它们finalArgs,而不必使用addAlland Arrays.asList()

(是的,我知道我可以创建一个函数,通过返回某些参数和可变参数来有效地完成我的解决方法)

所以我想除了这最后三个陈述之外,还有什么可以实现的吗?