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

python - **(双星/星号)和*(星号/星号)对参数有什么作用?

在以下方法定义中,*and**有什么作用param2

0 投票
7 回答
30719 浏览

c++ - 如何包装具有可变长度参数的函数?

我希望在 C/C++ 中做到这一点。

我遇到了可变长度参数,但这建议使用 Python 和 C 使用libffi的解决方案。

现在,如果我想printfmyprintf

我所做的如下:

但结果并不如预期!

我错过了什么地方?

0 投票
3 回答
10491 浏览

python - 在python中传递命名变量参数

假设我有以下方法:

在methodA中,我希望调用methodB,传递kwargs。但是,似乎如果我定义methodA如下,第二个参数将作为位置参数而不是命名变量参数传递。

如何确保 methodA 中的 **kwargs 作为 **kwargs 传递给 methodB?

0 投票
5 回答
1603 浏览

c# - 是否可以分解数组,以便可以将其元素传递给带有 params 关键字的方法?

以这个非编译代码为例:

这个例子是我正在使用的测试代码的简化版本。请,我只对与 param 关键字直接相关的解决方案感兴趣。我知道列表和其他类似的东西是如何工作的。

有没有办法“分解” extraFolders 数组,以便它的内容可以与其他参数一起传递到 AppendFolders 中?

0 投票
11 回答
184427 浏览

c - 传递可变数量的参数

假设我有一个 C 函数,它接受可变数量的参数:我如何调用另一个函数,它期望从它内部获得可变数量的参数,并将所有参数传递给第一个函数?

例子:

0 投票
1 回答
3353 浏览

c# - C# 使用来自 CPP 的未知数量的 args 调用 CPP 函数

我在 CPP 中有一个具有以下原型的函数:

我使用 DLLImport 属性从 C# 导入它。问题是:如何在 C# 中定义原型(在 DLLImport 属性下)?我如何将参数传递给这个函数?谢谢

0 投票
6 回答
9649 浏览

c++ - 是否有使用带有参考参数的可变参数的陷阱

我有这段代码(总结)......

并且,在可能的情况下首选通过引用传递的基础上,我因此对其进行了更改。

我的调用代码是这样的:-

但是,s1 包含“Hello World”,而 s2 包含“Hello (null)”。我认为这是由于 va_start 的工作方式,但我不确定发生了什么。

0 投票
2 回答
2324 浏览

java - 我错过了什么,还是 varargs 破坏了 Arrays.asList?

这个对 Arrays.asList 的调用不应该返回一个Longs 列表吗?相反,它返回一个List<long[]>

方法签名与结果一致,可变参数将整个数组扔到列表中。它new ArrayList(); list.add(myArray) 与 是的,我知道它应该像这样使用:Arrays.asList(T t1, T t2, T t3)

我想我得到的是,而不是可变参数形式,为什么我不能只使用我的旧 asList 方法(至少我认为这是它过去的工作方式),它将获取内容并将它们单独放入一个列表?还有其他干净的方法吗?

0 投票
3 回答
4387 浏览

delphi - 带有“可变参数”的函数如何检索堆栈的内容?

通常,在 Delphi 中,人们会使用 'array of const' 方法声明一个具有可变数量参数的函数。但是,为了与用 C 编写的代码兼容,可以将一个未知的“varargs”指令添加到函数声明中(我在阅读 Rudy 出色的“转换的陷阱”文档时了解到这一点)。

例如,可以在 C 语言中有一个函数,声明如下:

在 Delphi 中,这将变为:

我的问题是:在实现使用 'varargs' 指令定义的方法时,如何获取堆栈的内容?

我希望存在一些用于此的工具,例如 va_start()、va_arg() 和 va_end() 函数的 Dephi 翻译,但我在任何地方都找不到。

请帮忙!

PS:请不要在关于“为什么”或“const 数组”替代方案的讨论中飘忽不定——我需要这个来为 Xbox 游戏中的函数编写类似 C 的补丁(参见 sourceforge 上的 Delphi Xbox 模拟器项目“Dxbx”详情)。

0 投票
6 回答
67473 浏览

java - 差异 fn(String... args) 与 fn(String[] args)

这个语法有什么用:

这和写作一样吗

仅在调用此方法时有所不同,或者是否涉及其他任何功能?