在Python中,我可以在一行中定义两个带有数组的变量.
>>>[a,b] = [1,2]
>>>a
1
>>>b
2
Run Code Online (Sandbox Code Playgroud)
我如何用Java做同样的事情?
我在PCT类中有几个变量,类型是最终的.有没有办法像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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样定义多个变量:
double a,b,c;
Run Code Online (Sandbox Code Playgroud)
一行中的每个变量也可以分配给特定值:
double a=3, b=5.2, c=3.5/3.5;
Run Code Online (Sandbox Code Playgroud)
还有一个方面是,当您在同一行中准备公共类型变量时,从右侧分配的变量可以在左侧分配变量,例如:
int a = 4, b = a+1, c=b*b;
Run Code Online (Sandbox Code Playgroud)
注意,您还可以通过保留在同一行来对变量进行算术运算.
这是不可能的,但您也不需要调用parseFile两次.
像这样写你的代码:
int [] temp = parseFile(file);
start = temp[0];
stop = temp[1];
Run Code Online (Sandbox Code Playgroud)
Python(我相信)支持多个返回值.Java遵循C约定,因此不允许它.由于这不是语言的一部分,因此它的语法也不是,这意味着temp如果您正在进行多次返回,则需要像数组一样的粗略黑客攻击.