Java 在一个函数中传入多个相同类型的变量
在某些语言中,我们可以声明多个相同类型的变量,如下所示:Java 在一个函数中传入多个相同类型的变量,java,c++,Java,C++,在某些语言中,我们可以声明多个相同类型的变量,如下所示: int a,b,c,d; 但是,是否可以以相同的方式将它们传递到函数/方法中?例如在C++ template<class ItemType> void add6(ItemType one,two,three,four,five,six){ //some very interesting code } 我一次声明所有四个变量,主要是因为键入时比执行此操作更快: int a; int b; int c; int d; 我
int a,b,c,d;
但是,是否可以以相同的方式将它们传递到函数/方法中?例如在C++
template<class ItemType>
void add6(ItemType one,two,three,four,five,six){
//some very interesting code
}
我一次声明所有四个变量,主要是因为键入时比执行此操作更快:
int a;
int b;
int c;
int d;
我试图理解的是,如果相同的概念也适用于函数签名。
做某事
void func(int a,b,c,d){
//some interesting code
}
而不是
void func(int a, int b, int c, int d){
//some interesting code
}
再次感谢 我认为您希望向方法发送多个参数 您可以在Java中使用 范例
public static void print( Object... values){
for(Object c : values){
System.out.println(c);
}
}
print("string1","string2",1,2,3,4,5);
=================
在C中使用++
#包括
#包括
无效输出(){
STD::CUT使用可变长度参数列表语法(参见@ HungVo的答案),可以在java和C++中声明一个未指定的相同类型的尾随参数。
但是,对于参数列表前面单独命名的参数,必须将类型与每个参数名一起写入
但是,其他一些语言,如Pascal和Ada,确实提供了参数列表语法,允许您声明同一类型的多个连续参数,而不必重复类型名称。例如,在Pascal中,您可以定义一个过程aProc
,它接受INTEGER
,INTEGE>类型的参数R
、整数
和实数
(按该顺序)具有:
Ada的等效值几乎相同:
PROCEDURE aProc (a, b, c: INTEGER; x: FLOAT) IS
BEGIN
...
END aProc;
但在Java(或C++)中,您必须编写:
void aProc(int a, int b, int c, float x)
{
...
}
您可以使用:
然后你可以用以下方式来称呼它:
varargs(new Object(), new Object());
vararg不限制要放入参数的对象数
Java将自动将所有传递的对象存储到一个数组中,因此您可以将vararg视为一个数组,例如,您可以迭代vararg(数组)中的每个元素
可以将数组放在VARARG中,但确保数组的类型与VARARG的类型相同。如果将数组放在对象VARARG中,数组的类型不是对象,则java可以将数组视为单个元素而不是数组元素。
public static boolean test(Object ... args) {
for (Object object : args) {
if (object.getClass().isArray()) {
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println(test(new int[] {1, 2}));
//Prints true
}
问题是,这个java是这个词还是这个C++的?很明显地暗示了OP对这两个语言都感兴趣,也可能在其他语言中感兴趣。对于C++,请看一看谢谢,这真的是信息丰富的。我重读我的问题,注意到我在问什么,我不清楚,我已经编辑了它。lly回答了这个问题。还有老式的c语法(只适用于c而不是c++)。天哪,@Oleg!这肯定会让我回到“美好的过去”!
void aProc(int a, int b, int c, float x)
{
...
}
public void varargs(Object ... args)
varargs(new Object(), new Object());
public static boolean test(Object ... args) {
for (Object object : args) {
if (object.getClass().isArray()) {
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println(test(new int[] {1, 2}));
//Prints true
}