问题标签 [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.
java - SCJP 问题:使用 var-args 重载 Java 方法。理由是什么?
为什么下面的程序会抛出异常?
}
方法 callMethod(Integer[]) 对于 MainClass 类型不明确
好的,我可以看到这两种方法中的任何一种都可以工作(如果另一种被注释掉),但我也知道如果原语与方法的输入类型不完全匹配,会发生什么情况。
尝试的第一件事是扩大原语。所以,如果有第三种方法:
代码会打印很长
第二件事是对原语进行装箱。因此,如果有一种方法采用整数,那将是调用的方法。
第三个优先级是 var-args。
基于上述优先级,我希望第二个优先级是这种情况。我希望将 int 包装成一个 Integer 并调用 (Integer...) 。但是,这当然不会发生。相反,会引发异常。
有谁看到并可以解释为什么优先级不适用于此示例?
干杯!
c++ - 向可变参数宏添加默认参数
是否可以在可变参数宏中的变量参数之前添加默认参数?例如,我有类似的宏版本
我想在变量参数之前在宏中添加另外 2 个默认参数,这样它就不会影响以前的版本。喜欢:
任何帮助,将不胜感激。
java - 方法的 Java 变量号或参数
是否可以声明一个允许可变数量参数的方法?
定义中使用的符号表示该方法应允许可变数量的参数是什么?
答案:可变参数
c++ - Variadic Macros:如何解决“宏的实际参数过多..”
我一直在努力让我最初在 mac 上构建的一些代码在 Visual Studio 2008 Express 下运行,并且在我用于断言代码的可变参数宏中遇到了一个奇怪的问题:
宏定义为:
这一切都在 gcc(在 osx 下)下运行良好,并且曾经在 VS 2005 下运行,但是在 2008 年我收到以下警告:
调用代码很简单:
我确定我错过了一些简单的东西,而我的 google foo 让我失望了……
谢谢。
gcc - va_list 尚未声明
在 Fedora 11 上编译一些工作代码时,我收到此错误:
我在用:
有谁知道是什么问题?
c - C 函数声明中的“...”是什么意思?
这是什么意思?
我无法理解……是什么。谁能解释一下?
iphone - 如何将变量参数传递给另一个方法?
我用谷歌搜索并知道如何使用变量参数。但我想将我的变量参数传递给另一个方法。我收到错误。怎么做 ?
string - 在 LaTeX 中拆分逗号分隔的参数
我正在尝试构建一个类似于 LaTeX 的命令\cite{}
,它接受像这样的逗号分隔的参数列表
\cite{Wall91, Schwartz93}
我想将参数表示的逗号分隔列表中的每个项目传递给另一个命令,并返回各个结果的串联。我想它是这样的:
关于 LaTeX 中的字符串操作、变量和循环的文献会很棒!
另外:有没有办法再次使用逗号加入单个结果?
谢谢!
c - 调用具有不同数量参数的 cdecl 函数
我有一些我希望根据一些输入调用的函数。每个函数都有不同数量的参数。换句话说,
这有点笨重且难以维护。理想情况下,这些是可变参数函数(例如 printf 样式)并且可以使用可变参数。但他们不是。因此,利用 cdecl 调用约定,我通过一个充满参数的结构填充堆栈。我想知道是否有更好的方法来做到这一点。请注意,这仅限于内部(例如,简单工具、单元测试等),不会用于任何可能受到恶意攻击的生产代码。
例子:
输出:
scala - 使用重复参数的成本
我考虑重构一些当前采用类型参数List
或Set
具体类参数的方法签名List[Foo]
——以使用重复参数代替:Foo*
.
更新:以下推理是有缺陷的,继续前进......
这将允许我使用相同的方法名称并根据参数类型重载它。List
使用or是不可能的Set
,因为List[Foo]
和List[Bar]
擦除后具有相同的类型:List[Object]
。
在我的情况下,重构的方法可以很好地处理scala.Seq[Foo]
重复参数的结果。我将不得不更改所有调用并向所有集合参数添加序列参数类型注释:baz.doStuffWith(foos:_*)
.
鉴于从集合参数切换到重复参数在语义上是等效的,这种变化是否会对性能产生一些我应该注意的影响?
scala 2.7._ 和 2.8 的答案是否相同?