Ich habe mir heute Java-Code angesehen und eine seltsame Syntax gefunden:
public class Sample {
public int get()[] {
return new int[]{1, 2, 3};
}
}
Ich dachte, das kann nicht kompiliert werden und wollte das beheben, was ich für einen Tippfehler hielt, aber dann erinnerte ich mich, dass der Java-Compiler es tatsächlich akzeptierte!
Kann mir bitte jemand helfen zu verstehen, was es bedeutet? Ist es eine Reihe von Funktionen?
Antworten:
Es ist eine Methode, die eine zurückgibt
int[]
.quelle
public int[] foo()[][] {
und die Augen der Menschen bluten lassen.Das ist eine lustige Frage. In Java kann man sagen
int[] a;
, sowieint a[];
.Aus dieser Perspektive müssen Sie nur das verschieben
[]
und schreiben , um das gleiche Ergebnis zu erzielen
public int[] get() {
.Sieht immer noch so aus, als ob der Code von einem Verschleierer stammt ...
quelle
Da es ein C-Tag gibt, möchte ich darauf hinweisen, dass eine ähnliche (aber nicht identische) Notation in C und C ++ möglich ist:
Hier gibt die Funktion
f
einen Zeiger auf ein Array von 10 Zoll zurück.Java braucht einfach keinen Stern und keine Klammer.
quelle
f()[]
so etwas wie(*f())
.Die Java-Syntax ermöglicht Folgendes:
und auch
Das sieht eher nach der Syntax im C-Stil aus.
Bei einer Funktion kann der Name auch vor oder nach dem [] stehen, und der Typ ist immer noch int []
quelle