2011-12-24 30 views
5

Duplicar posibles:
java - Array brackets after variable namepasar una matriz a una función de Java

Al escribir una función de Java que acepta un array como parámetro, si la definición de la función tienen los soportes (" [] ") en el tipo o el nombre de la variable?

como en:

private int myFunction(int array[]) 
{ 
    //do stuff here 
} 

o ...

private int myFunction(int[] array) 
{ 
    //do stuff here 
} 

Ambos "trabajo", pero hay una diferencia técnica entre los dos?

+0

También puede hacer 'private int myFunction (int ... array)' –

Respuesta

15

No hay diferencia. Pero int[] array se considera idiomático Java.

La lógica es que [] es parte del tipo (una matriz es un tipo distinto de un escalar), por lo que int y [] deben vivir juntos. También es coherente con la notación por ej. tipos de devolución:

int[] foo() { 
    ... 
    int[] x = new int[5]; 
    return x; 
} 
+0

¡Excelente! Gracias por la aclaración. – Aaron

+0

AFAIK int foo() [] {} también es válido, por lo que ambos serían consistentes con los tipos de devolución. – josefx

+1

@josefx: Eso bien puede ser cierto. Pero si veo a alguien escribir 'int foo() []' en código real, tendría que pegarle. –

1

No hay diferencia técnica entre los dos. Nunca he visto una guía de estilo que prescriba o prefiera el estilo en su primer ejemplo. Tampoco he visto código Java de código abierto que utilizara el estilo en su primer ejemplo. Es siempreint[] array.

2

Cuando hay única variable que no hay mucha diferencia, sin embargo, cuando su utiliza para definir múltiples variables

int[] array1, array2; 

Se definirá dos matrices.

int array1[], i; 

Definirá una matriz y una variable.

+2

Argumentaría que 'int array1 [], i;' es feo, ya que está declarando variables con dos tipos diferentes. – cHao

+0

@cHao I Totalmente de acuerdo –

0

int[] array tiene más sentido para mí porque int[] es el tipo y array es el nombre. Tiene más sentido mantenerlos separados y estandarizados.

Cuestiones relacionadas