问题标签 [variadic-functions]

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 投票
21 回答
229957 浏览

javascript - 如何将“参数”对象转换为 JavaScript 中的数组?

JavaScript 中的arguments对象是一个奇怪的缺陷——在大多数情况下它的行为就像一个数组,但它实际上并不是一个数组对象。因为它完全是另外一回事,它没有Array.prototypeforEach, sort, filter, 和map.

使用简单的 for 循环从 arguments 对象构造一个新数组非常容易。例如,此函数对其参数进行排序:

然而,仅仅为了访问极其有用的 JavaScript 数组函数而不得不这样做是一件相当可怜的事情。有没有使用标准库的内置方法?

0 投票
2 回答
1787 浏览

ruby-on-rails - Rails,在非活动记录模型上使用 time_select

我正在尝试使用 time_select 将时间输入到模型中,然后执行一些计算。

time_select 帮助器准备返回的参数,以便可以在对 Active Record 对象的多参数分配中使用它。

类似于以下内容

我的问题是,在非活动记录模型中使用这种格式的最佳方法是什么。也在旁注中。(5i)、(4i) 等是什么意思?(除了区分不同时间值的明显原因,基本上就是为什么这样命名)

谢谢

0 投票
4 回答
23737 浏览

c - 填充 va_list

有没有办法va_list从头开始创建?我正在尝试调用一个以 ava_list作为参数的函数:

...来自一个不接受可变数量参数的函数。我能想到的唯一方法是创建一个中间函数,它接受可变参数,然后传递它的 va_list,这很愚蠢:

有没有更好的办法?我无法更改func的签名。

0 投票
2 回答
47115 浏览

scala - 使用 Scala 中的可变参数

我正在撕扯头发,试图弄清楚如何执行以下操作:

我必须用 ano和 anos Seq分别声明方法是有原因的。基本上,我最终得到了使用单个对象参数(类型List )调用的格式方法。尝试:

给我类型错误:

找到:数组[任何]

需要 Seq[java.lang.Object]

我尝试过强制转换,它编译但失败的原因与第一个示例几乎相同。当我尝试

这无法编译隐式转换歧义(any2ArrowAssocany2stringadd

0 投票
2 回答
4931 浏览

iphone - 将 NSArray 分离为 NSString 类型对象的列表

UIActionSheet 初始化为:

我正在尝试将 NSArray 传递到“otherButtonTitles”消息中。

我尝试使用以下方法传递 NSArray:

但该消息需要一个 NSStrings 列表。

我能想到的将 NSArray 分解为一组 NSString 的唯一方法是使用 componentsJoinedByString,但它给了我一个逗号分隔的列表,它是一个 NSString。

正确方向的一点将不胜感激。

0 投票
7 回答
129545 浏览

c++ - 如何将可变数量的参数传递给 printf/sprintf

我有一个类包含一个“错误”函数,它将格式化一些文本。我想接受可变数量的参数,然后使用 printf 格式化它们。

例子:

Error 方法应该接受参数,调用 printf/sprintf 对其进行格式化,然后对其进行处理。我不想自己编写所有格式,因此尝试弄清楚如何使用现有格式是有意义的。

0 投票
3 回答
1439 浏览

java - JSR223:从脚本调用 Java“varargs”方法

我有一个在 Java 上看起来像这样的方法:

但我无法从脚本中按预期调用此方法。

如果,在红宝石中,我这样做:

它给了我org.jruby.exceptions.RaiseException: could not coerce Fixnum to class [Ljava.lang.Object

如果我在 Javascript 中尝试以下操作:

然后它给了我sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method MyClass.test(number). (#2) in at line number 2

当然,如果我将签名更改为采用单个对象,那么它就可以工作。

我认为这是因为沿线的某个人不知道如何转换,比如说第一个位置IntegerInteger[]值。

我相信类似的东西myMethod({42, 2009})可以在 Ruby 中工作,但这看起来很丑 - 我希望能够myMethod(42, 2009)让它不那么混乱,特别是对于其他语言。有没有更好的解决方法?

谢谢。

0 投票
2 回答
1413 浏览

c# - 需要数组的可变参数函数的设计决策是什么?

我很好奇,希望有人能对此有所了解——但为什么采用“参数”的 C# 函数必须是一个数组?

我知道参数列表中的对象被输入了一个数组,但是如果有人想要创建一个可变参数函数来接收未定义数量的数组对象怎么办?

以这个函数为例...

很简单,它可以接受不同数量的数字 - 例如......

现在假设我想创建一个函数,它接收不同数量的整数数组并对所有数字求和。据我所知,我将不得不考虑拳击......

然后可以像...一样使用

这背后的原因是什么?为什么这不是作为一个单一的非数组变量实现的?比如params Int32

0 投票
2 回答
1725 浏览

java - 对象数组与对象数组的 Var-arg —— 试图理解 SCJP 自测题

我无法理解这个问题,以及对 SCJP 1.6 自测问题答案的解释。这是问题所在:

结果是什么?答案是-434,但让我失望的是这本书的解释。它与本章前面解释的概念有很大不同。

“通常,最后选择重载的 var-args 方法。请记住,数组是对象。最后,可以将 int 装箱为 Integer,然后将其“扩展”为 Object。”

拆分一下,有人可以进一步定义该解释吗?

  1. 通常,最后选择重载的 var-args 方法。
  2. 数组是对象(我实际上明白了,但为什么这与这个问题有关)。
  3. 可以将 int 装箱为 Integer,然后将其“扩展”为 Object。

谢谢!

0 投票
2 回答
1675 浏览

matlab - 从变量中读取的可变长度 MATLAB 参数

我有一个带有可变参数的函数,以标准方式声明:

我想从另一个函数调用它,但以编程方式指定参数。我最好的尝试是这样的:

但是, bar 被放入一个 1x1 单元格数组中,而不是像我想要的那样被解释为一个 1x3 单元格数组。我无法更改 foo,那么有解决方法吗?