Rozważ poniższy fragment kodu w Javie. Wiem, że oświadczenie temp[index] = index = 0;
w poniższym fragmencie kodu jest w zasadzie niedopuszczalne, ale może być konieczne w niektórych sytuacjach, a zatem istnieje potrzeba poznania.Łańcuchowanie przypisania tablicy w Javie
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]);
}
}
Wyświetla on następujące dane wyjściowe na konsoli.
temp[0] = 4
temp[1] = 0
Nie rozumiem tego oświadczenia temp[index] = index = 0;
. W jaki sposób temp[1]
zawiera 0
? W jaki sposób występuje to przypisanie?
Czego można się spodziewać po "temp [1]"? –
Myślę, że to całkiem jasne, że spodziewa się, że 'index' po raz pierwszy stanie się' 0' tworząc 'temp [indeks]' równoważny 'temp [0]', tak że tylko pierwszy element zostanie zmodyfikowany. –
Tutaj powinna być zawarta wiadomość take home, nie należy pisać kodu w ten sposób. Znajomość skrzypcowych kawałków Javy jest szanowaną umiejętnością, ale w większości bezużyteczna. Tego typu kod po prostu nie powinien istnieć, a jego odnalezienie powinno zostać natychmiast wyeliminowane. – rfeak