Oh! Cosa significa questo ‘…’ in public static void main(String … args) in Java?

I programmatori Java sono molto legati alla scrittura della funzione main come public static void main(String args). Quelli che ci hanno lavorato per un po’ di tempo sono entrati in profondità e sanno cosa significa quell’affermazione tra parentesi.

A quelli che non lo sanno ancora possono anche indovinare se avete capito bene le basi. È un array di stringhe e si chiama ‘args’ (forma abbreviata per argomento). Bene, non è stato difficile. Ma se vi chiedessi di indovinare cosa potrebbe significare ‘String … args’, quali potrebbero essere tutte le possibilità che vi vengono in mente?

È questo che senti?

Piuttosto che venire direttamente sul significato esatto, lascia che ti dica qualcosa su – ELLIPSIS.

L’ELLIPSIS è una serie di punti o punti (‘…’) che sono usati in quasi tutte le lingue (No! Non i linguaggi di programmazione, le lingue generali – inglese, tedesco e così via) che di solito usiamo intenzionalmente per omettere una parola, una frase o un’intera sezione da un testo senza alterarne il significato originale. I punti vengono utilizzati senza alcuno spazio in mezzo. Un esempio è l’inglese, diciamo: It is not cold… it is freezing cold.

Lo stesso si usa nei linguaggi di programmazione e anche in matematica. Esempio: In matematica, si usa 1+2+3+…+100 e sappiamo subito che i punti rappresentano il resto dei numeri mancanti. Sembra un po’ familiare, vero? L’ellissi è usata in numerosi linguaggi di programmazione a partire da Pascal, C a Python e a C++, Go e Java. In C, C++ e Java, è usato come funzione Variadic, una funzione di un numero indefinito di argomenti.

Varargs o funzione Variadic in Java è stata introdotta come caratteristica del linguaggio in J2SE 5.0. L’argomento del metodo può essere dichiarato come parametro di aritmetica variabile o semplicemente come metodo varargs. Questo permette di passare un numero variabile di valori del tipo dichiarato al metodo come parametri (incluso nessun parametro) e questi valori saranno disponibili all’interno del metodo come un array.

void printNumbers(int... numbers) { 
//numbers represents varargs
for (int num : numbers) {
System.out.println(num);
}
}
// Calling varargs method
printNumbers(1,2,3,4,5);

L’output sarebbero i numeri visualizzati come uno per ogni riga.

Ma perché era necessario?

Nelle versioni passate di Java, un metodo per prendere un numero arbitrario di valori richiedeva di creare un array e mettere i valori nell’array prima di invocare il metodo. È ancora vero che più argomenti devono essere passati in un array, ma la funzione varargs automatizza e nasconde il processo. Inoltre, è compatibile verso l’alto con le API preesistenti. I tre periodi indicano che l’argomento può essere passato come un array o come una sequenza di argomenti.

Quindi (String… args) è un array di parametri di tipo String, mentre String è un singolo parametro. String può riempire lo stesso scopo, ma solo (String… args) fornisce più leggibilità e facilità d’uso. Fornisce anche un’opzione che ci permette di passare più array di String piuttosto che uno solo usando String. Può essere usato quando il programmatore desidera che tu abbia Varargs secondo i requisiti del programma.

Se hai trovato il blog utile, mostra il tuo amore 👏 .