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

c++ - 带有函数回调的可变数量的参数(va_list)?

我正在努力实现一个功能,该功能将在几秒钟后执行另一个功能,具体取决于用户的输入。我有一个类的优先级队列(我称之为 TimedEvent),其中包含一个函数指针,指向我希望它在间隔结束时执行的操作。例如,假设用户希望程序在 3 秒后调用函数“xyz”,他们将使用时间和指向 xyz 的函数指针创建一个新的 TimedEvent,并将其添加到优先级队列(按时间排序,使用最先发生的事件)。

我已经能够成功地让优先级队列在指定时间后弹出顶部元素,但在这里遇到了障碍。我要调用的函数可以采用各种不同的参数,从只采用单个整数的参数到采用 3 个整数、一个字符串等的参数,并且还返回不同的值(一些整数、一些字符串等)。我研究了 va_lists (我没有经验),但这似乎不是答案,除非我遗漏了一些东西。

总而言之(TL;DR版本):
我希望能够将这些函数称为“多样化”,因为它们具有相同的函数指针:

我是否在正确的轨道上使用 va_list 和函数回调?这可以轻松(或根本)实现吗?

谢谢!

0 投票
1 回答
247 浏览

c - 为带有可变数量参数的函数编写替换(c 编程)

我正在寻找一个函数来替换 fprintf

我不确定如何定义这样的函数,因为在格式参数之后,该函数采用可变数量的参数。具体来说,它至少需要与格式中指定的一样多的附加参数。

更新我找到了有关该主题的资源(http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.html),但该示例似乎无法在我正在使用的操作系统Linux下编译。

一个只调用 fprintf 的 fprintf 替换示例会很有帮助。

这不是家庭作业。我只是一个试图在空闲时间学习如何编程的初学者。谢谢!

0 投票
3 回答
1621 浏览

php - 将参数传递给 PDO 的好方法

当处理超过 3 或 4 个参数时,位置参数将成为一场噩梦。命名参数是冗长的。我正在考虑这样做:

使用动态参数(使用func_get_args()),每一秒都会转换为位置参数。

我以前从未见过这个,想知道是否有人以前做过这个,为什么/为什么不这样做?

0 投票
2 回答
914 浏览

c - 宏中的变量参数

我有一个接受可变参数的函数,如下所示

在头文件中,我使用类似

基本上思路就是SWITCH调试ON&OFF~~~

  • 问题:上述逻辑在 Linux 和 gcc 中运行良好,但在 Windows VC++ 中编译时出错。
0 投票
5 回答
5471 浏览

php - PHP:通过引用的可变长度参数列表?

是否可以创建一个 PHP 函数,该函数通过引用获取可变数量的参数?

它对我一个通过引用接收值数组的函数没有帮助,也对一个将其参数包装在一个对象中的函数没有帮助,因为我正在处理函数组合和参数绑定。也不要考虑调用时的引用传递。那东西根本就不应该存在。

0 投票
7 回答
3604 浏览

java - slf4j 是否有 Java 1.5 varargs API?

我想摆脱这一切...

...并用这个替换它...

...这样我的日志记录语法就不必根据我要记录的参数数量而改变。似乎有很多讨论和工作围绕它,但它在哪里?或者我应该包装 slf4j 的包装器吗?

0 投票
12 回答
137384 浏览

javascript - 是否可以向 JavaScript 函数发送可变数量的参数?

是否可以从数组向 JavaScript 函数发送可变数量的参数?

我最近写了很多 Python 并且能够接受 varargs 并发送它们是一个很棒的模式。例如

是否可以在 JavaScript 中发送一个数组作为参数数组处理?

0 投票
4 回答
6034 浏览

javascript - javascript应用于构造函数,抛出“格式错误的形式参数”

感谢对这个问题的精彩回答,我了解如何使用可变参数调用 javascript 函数。

现在我希望将apply 与构造函数一起使用

我在这篇文章中发现了一些有趣的信息。

但我的代码抛出错误

尝试1:

错误:

尝试 2: 尝试 1:

错误:

尝试2:

错误:

尝试3:

错误 :

我暂时有一个解决方法:

这工作得很好,但它不像我想要的那样干净和通用。

javascript中是否可以使用可变参数调用构造函数?

0 投票
3 回答
784 浏览

c++ - 将 va_arg 两次传递给函数会产生相同的值

我正在尝试使用 va_arg 在我的 GUI 库中创建一个通用工厂函数。当在同一个函数中传递 va_arg 两次时,它们传递相同的值而不是两个不同的值:

是什么导致了这种意外行为?

0 投票
5 回答
19975 浏览

c++ - 是否可以编写一个可变参数函数,将其参数列表发送到另一个可变参数函数?

可能重复:
C 编程:前向变量参数列表。

我想做的是以 printf 的方式将数据发送到日志库(我无法修改)。

所以我想要一个这样的函数:

我可以以某种方式将可变参数传递给另一个可变参数函数吗?