2012-01-20 100 views

回答

12

語義沒有區別。兩種語法意思都一樣。一些提取物從JLS §10.2

的[]可能顯示爲在 聲明的開頭所述類型的部分,或作爲特定變量, 的說明符的一部分或這兩者,如在這個例子中:

byte[] rowvector, colvector, matrix[]; 

此聲明等效於:

byte rowvector[], colvector[], matrix[][]; 

然而,因爲Voo在下面的註釋中聲明,當在單個語句中聲明幾個數組時,可能會對這些聲明產生一些棘手的混淆。

+0

謝謝,我也這麼認爲,但必須確保。 – shift66

+2

雖然每行定義多個變量(引用的部分已經提示),但它們有區別。即'int a [],b;'與'int [] a,b;'不一樣,這可能是意想不到的。 Imho最好不要使用第二個變體,因爲它可能會導致混淆。這實際上是來自C和iirc Bloch的遺產,或者後來說他遺憾地將其包含在語言中 - 但可能是錯誤的。 – Voo

+0

@Voo:好的評論,我還沒有想到。雖然我通常不認爲在一行中聲明幾個變量是一個好主意,尤其是如果它們的類型與本示例中不一樣... –

7

沒有區別。

這只是從C過渡到更簡單的語法糖。在Java int[] x是首選(和推薦)符號。

1

沒有,這只是一個品味問題。有些人更喜歡把它放在聚合類型的旁邊(因爲覺得它是類型的一部分),另一些人則傾向於將它與變量名放在一起(因爲它更接近訪問語法)。

相關問題