[英]Chaining array assignment in Java
請考慮Java中的以下代碼段。 我知道語句temp[index] = index = 0;
在下面的代碼片段中是非常不可接受的,但在某些情況下可能是必要的:
package arraypkg;
final public class Main
{
public static void main(String... args)
{
int[]temp=new int[]{4,3,2,1};
int index = 1;
temp[index] = index = 0;
System.out.println("temp[0] = "+temp[0]);
System.out.println("temp[1] = "+temp[1]);
}
}
它在控制台上顯示以下輸出。
temp[0] = 4
temp[1] = 0
我不明白temp[index] = index = 0;
。
temp[1]
如何包含0
? 這項任務是如何發生的?
賦值完成( temp[index] = (index = 0)
),右關聯。
但首先,為LHS變量計算表達式temp[index]
。 那時index
仍然是1.然后RHS( index = 0
)完成。
你的陳述給它指的是零。 語句temp [index] = index = 0將零寫入索引AND並進入temp [index]。 這就是那個意思。 將所有變量放在賦值運算符0的左側。
該行的作用是在index
被賦值為0
之后, temp[index]
應該等於index
。
這就是為什么這種語法大多是不可接受的原因。 它很難閱讀,大多數人都不理解。
你將temp [1]和index都指定為'0',它從左向右運行。 認為屁股溫度[index / * * /]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.