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

iphone - 如何将可变数量的参数“传递”给 NSString 的 +stringWithFormat:

我想在 Objective-C 中编写一个函数,如下所示,它接受可变数量的参数,并将这些参数传递给+stringWithFormat:. 我知道vsnprintf,但这意味着将 NSString“格式”转换为 C 并返回(也意味着转换其中的格式占位符......)。

下面的代码可以编译,但当然不会像我想要的那样运行:)

基本上:是否有va_list该方法的友好版本+stringWithFormat:,或者是否可以编写一个?

0 投票
10 回答
117110 浏览

php - 如何将可变数量的参数传递给 PHP 函数

我有一个 PHP 函数,它接受可变数量的参数(使用func_num_args()and func_get_args()),但我想传递给函数的参数数量取决于数组的长度。有没有办法用可变数量的参数调用PHP 函数?

0 投票
2 回答
3029 浏览

c++ - Variadic function without specified first parameter?

Out of curiosity, I thought I'd try and write a basic C++ class that mimics C#'s multiple delegate pattern. The code below mostly does the job, with the nasty sacrifice of losing almost all type-safety, but having to use the initial dummy parameter to set up the va_list really seems a bit off. Is there a way to use va_list without this? I do realize there are ways to do this with (for example) boost, but I was aiming for something dead simple that used just the standard library.

0 投票
2 回答
32425 浏览

java - Scala 如何在方法定义中接收多个参数?

Java有:

如何在 Scala 中实现相同的功能?也就是说,将未定义数量的参数传递给方法?

0 投票
11 回答
38252 浏览

java - Arrays.asList() 不能正常工作?

我有一个 float[],我想获得一个包含相同元素的列表。我可以做一件丑陋的事情,将它们一一添加,但我想使用 Arrays.asList 方法。不过有一个问题。这有效:

但事实并非如此。

asList 方法接受一个可变参数参数,据我所知,该参数是数组的“速记”。

问题:

  • 为什么第二段代码返回 aList<int[]>而不是List<int>.

  • 有没有办法纠正它?

  • 为什么自动装箱在这里不起作用;即int[]Integer[]

0 投票
3 回答
187 浏览

java - 可变参数类?

以下代码

给出输出:-

这是什么课?

0 投票
4 回答
1205 浏览

java - 如果 varg 在 Java 中设置为 null,则获取 vargs 的类类型

如果 varg 设置为 null,如何在 Java 中获取变量参数的数据类型?我使用 getClass 来检索类型。还有其他方法吗?

我唯一能想到的是使用调用函数中的注释。还有其他方法吗?

0 投票
2 回答
278 浏览

java - var-args 只能用作方法参数吗?

这编译得很好:-

但这没有被编译。

请纠正我,如果我在语法上是错误的。:-)


cletus 写道 :- 它实际上只是一个数组的语法糖

这是一个示例,后面是Kathy Sierra 和 Bert Bates编写的一本非常流行的 Java 书籍(Head First Java,第 2 版,McGraw-Hill/Osborne)的声明 :-

主题泛型,

<T extends MyClass>,其中 MyClass 是一个类,并且

<T extends MyInterface>,其中 MyInterface 是一个接口。

以下是从书中复制的原样(第 548 页,第 16 章):-

在泛型中,“扩展意味着”“扩展或实现”???Java 工程师必须给您一种方法来对参数化类型施加约束,以便您可以将其限制为。但是您还需要约束一个类型以仅允许实现特定接口的类。因此,在这种情况下,我们需要一种语法来同时适用于两种情况——继承和实现。换句话说,这适用于扩展和实现。获胜的词是......扩展。每当太阳工程师有机会重用现有关键字时,就像他们在这里使用“扩展”所做的那样,他们通常会这样做。但有时他们别无选择......(断言,枚举)。

MyQuestion : var-args 只是数组的语法糖,没有其他功能然后数组???

0 投票
1 回答
539 浏览

python - 函数名之前的python varargs?

我正在客户端代码库中进行一些 Python 编码,我偶然发现了一行看起来像这样的代码(变量名称已更改以保护无辜者):

通常参数列表中的 ** 会收集剩余的关键字参数,但它们在函数名前面做了什么?

0 投票
2 回答
11488 浏览

c++ - 将一个 va_list 作为参数传递给另一个

我正在使用 fastcgi 库创建一个应用程序,它们的打印方法有点冗长。我试图用我自己的方法包装他们的 fprintf 函数:

我想转

FCGX_FPrintF(out, char* fmt, ...);

进入

写(字符* strFormat,...);

我发现了 va_list 的魔力,但找不到将 va_list 值传递给他们的 fprintf 函数的简单方法。有没有办法做到这一点?我知道 vsprintf 和 vprintf 存在,所以它一定比我想象的要难。

如果一切都失败了,我将重载一个写入函数