Hoy miré algo de código Java y encontré una sintaxis extraña:
public class Sample {
public int get()[] {
return new int[]{1, 2, 3};
}
}
Pensé que no se puede compilar y quería corregir lo que pensé que era un error tipográfico, ¡pero luego recordé que el compilador de Java realmente lo aceptó!
¿Puede alguien ayudarme a entender lo que significa? ¿Es una serie de funciones?
Respuestas:
Es un método que devuelve un
int[]
.fuente
public int[] foo()[][] {
y hacer sangrar los ojos de las personas.Esa es una pregunta divertida. En Java se puede decir
int[] a;
, así comoint a[];
.Desde esta perspectiva, para obtener el mismo resultado solo es necesario mover
[]
y escribir
public int[] get() {
.Todavía parece que el código proviene de un ofuscador ...
fuente
Como hay una etiqueta C, señalaré que una notación similar (pero no idéntica) es posible en C y C ++:
Aquí la función
f
devuelve un puntero a una matriz de 10 ints.Java simplemente no necesita la estrella y el paréntesis.
fuente
f()[]
significar algo como(*f())
.La sintaxis de Java permite lo siguiente:
y también
que parece más fmiliar viniendo de la sintaxis de estilo C.
también, con una función, el nombre puede ir antes o después de [], y el tipo sigue siendo int []
fuente