Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一条语句中定义多个变量_Java_Arrays - Fatal编程技术网

Java 如何在一条语句中定义多个变量

Java 如何在一条语句中定义多个变量,java,arrays,Java,Arrays,在Python中,我可以用一行数组定义两个变量 >>>[a,b] = [1,2] >>>a 1 >>>b 2 在Java中如何做同样的事情 我在PCT类中有几个变量,类型是final。有没有一种方法可以像Python一样在一行中定义它们?以下格式在Java中显然不起作用。我可以分别定义它们,但它将调用parseFile方法两次,我希望避免这种情况 public class PCT { final int start; fin

在Python中,我可以用一行数组定义两个变量

>>>[a,b] = [1,2]
>>>a
1
>>>b
2
在Java中如何做同样的事情

我在PCT类中有几个变量,类型是final。有没有一种方法可以像Python一样在一行中定义它们?以下格式在Java中显然不起作用。我可以分别定义它们,但它将调用parseFile方法两次,我希望避免这种情况

public class PCT {
    final int start;
    final int stop;
    public PCT (File file) {
        //......
        //......
        // the following statement does not compile
        [start, stop] = parseFile(file);
    }
    public int[] parseFile(File f) {
        int[] aa = new int[2];
        // ....
        // ....
        return aa;
    }
}

这是不可能的,但是您也不需要调用
parseFile
两次

按如下方式编写代码:

int [] temp = parseFile(file);
start = temp[0];
stop = temp[1];

Python(我相信)支持多个返回值。Java遵守C约定,因此不允许这样做。因为这不是语言的一部分,所以它的语法也不是,这意味着如果你在做多重返回,就需要像
temp
数组这样稍微粗俗的黑客攻击;只要在两条语句之间放一个分号,它们就会像中间有新行一样执行,因此您可以调用:

a = 1; b = 2;
您甚至可以通过删除注释(该范围到行尾)将整个文件压缩为一行。间隔(空格、制表符、新行等)通常作为Java编译器的第一步从Java文件(内存中)中删除

但你可能对一个单独的声明更感兴趣。Sytax like
[start,stop]=parseFile(文件)不受支持(至少目前不支持)。您可以创建一个在线:

int[] data = parseFile(file); start = data[0]; stop = data[1];

也许这就是你想要的:

int array[] = {1,2};

如果您希望显式地分配给每个元素,我不认为您可以在一个分配中完成,就像下面的二维示例中的类似概念一样。正如杰里米的回答所说,这似乎是你想要的


声明同一类型的多个变量时,可以执行以下操作:

int a = 1, b = 2, c = 3; //etc.

您可以这样定义多个变量:

double a,b,c;
一行中的每个变量也可以指定给特定值:

double a=3, b=5.2, c=3.5/3.5;
另一个方面是,当您在同一行中准备公共类型变量时,您可以从右侧指定的变量向左侧指定变量,例如:

int a = 4, b = a+1, c=b*b;
注意,您也可以通过保持在同一行来练习对变量的算术运算。

也许吧

public class PCT 
{
    final Point pos;  // two ints!

    public PCT (File file) 
    {
        pos = parseFile(file);
    }

    public int[] parseFile(File f) 
    {
        Point aa = new Point();
        // ....
        // ....
        return aa;
    }
}

只是好奇你为什么想要这个?仅为了将2行减少为1行?@noMAD:这是Python/Octave/Matlab/中非常方便的功能。。。world在一条语句中传递/设置多个参数。C/C++/Java家族缺少的东西。