簡體   English   中英

在Java中鏈接數組賦值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM