如何将数组传递给接受带有 splat 运算符的属性的方法?

Posted

技术标签:

【中文标题】如何将数组传递给接受带有 splat 运算符的属性的方法?【英文标题】:How do I pass an array to a method that accepts an attribute with a splat operator? 【发布时间】:2011-10-03 23:50:09 【问题描述】:

如果我有这样的方法:

def sum *numbers
  numbers.inject|sum, number| sum += number
end

如何将数组作为数字传递?

ruby-1.9.2-p180 :044 > sum 1,2,3   #=> 6
ruby-1.9.2-p180 :045 > sum([1,2,3])   #=> [1, 2, 3]

请注意,我无法将 sum 方法更改为接受数组。

【问题讨论】:

【参考方案1】:

你是这个意思吗?

sum(*[1,2,3])

@Dogbert 是第一个

【讨论】:

【参考方案2】:

调用方法的时候放个屁?

sum(*[1,2,3])

【讨论】:

以上是关于如何将数组传递给接受带有 splat 运算符的属性的方法?的主要内容,如果未能解决你的问题,请参考以下文章

Nagios - 如何在传递给 NRPE 服务器的参数中使用逻辑运算符

将带有字符串的结构化 numpy 数组传递给 cython 函数

使用 ruby​​ splat 运算符在哪里合法?

如何将字符串向量传递给execv

Matlab 中是不是有 splat 运算符(或等效运算符)?

如何将带有参数的 Meteor Spacebars 助手传递给另一个助手属性?