[英]How to define multiple variables in single statement
在Python中,我可以在一行中定義兩個帶有數組的變量。
>>>[a,b] = [1,2]
>>>a
1
>>>b
2
我如何用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;
}
}
您可以像這樣定義多個變量:
double a,b,c;
一行中的每個變量也可以分配給特定值:
double a=3, b=5.2, c=3.5/3.5;
還有一個方面是,當您在同一行中准備公共類型變量時,從右側分配的變量可以在左側分配變量,例如:
int a = 4, b = a+1, c=b*b;
注意,您還可以通過保留在同一行來對變量進行算術運算。
這是不可能的,但您也不需要兩次調用parseFile
。
像這樣寫你的代碼:
int [] temp = parseFile(file);
start = temp[0];
stop = temp[1];
Python(我相信)支持多個返回值。 Java遵循C約定,因此不允許它。 由於這不是語言的一部分,因此它的語法也不是,這意味着如果您正在進行多次返回,則需要像temp
數組那樣略有嚴重的黑客攻擊。
如果你的文字意味着線 ; 只要在兩個語句之間放置一個分號,它們就會被執行,就像它們之間有一條新行一樣,你可以調用:
a = 1; b = 2;
您甚至可以通過刪除注釋(該范圍到行的末尾)將整個文件壓縮到oneliner中。 作為Java編譯器的第一步,通常從Java文件(在內存中)中刪除間距(空格,制表符,換行符......)。
但你可能對這個聲明更感興趣。 Sytax喜歡[start, stop] = parseFile(file);
不受支持(至少目前不支持)。 你可以做一個在線人:
int[] data = parseFile(file); start = data[0]; stop = data[1];
也許這就是你要找的東西:
int array[] = {1,2};
如果你想明確地分配給每個元素,我認為你不能在一個任務中做到這一點,就像下面的二維示例中的類似概念一樣。 這正如傑里米的答案所指出的那樣。
聲明多個相同類型的變量時,可以執行以下操作:
int a = 1, b = 2, c = 3; //etc.
也許
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.