2017-05-30 2 views
-3

Tout en pratiquant quelques questions sur hackerrank, certaines des solutions avaient argh au lieu d'args (que j'ai utilisé principalement). De plus, j'ai appris qu'il existe un autre argument qui peut être passé à la fonction main() et qui est argv. Ainsi, dans tous les trois arguments différents qui existent:Quelle est la différence entre args et argh et argv en Java?

args

argh

argv

Pourriez-vous s'il vous plaît me dire la différence entre les trois et comment et quand les utiliser?

Et voici le code:

class Solution{ 
public static void main(String []argh){ 
    Scanner in = new Scanner(System.in); 
    int n = in.nextInt(); 
    for(int i = 0; i < n; i++){ 
     String name = in.next(); 
     int phone = in.nextInt(); 
     // Write code here 
    } 
    while(in.hasNext()){ 
     String s = in.next(); 
     // Write code here 
    } 
    in.close(); 
    } 
} 

S'il vous plaît noter que je ne demande pas la solution à la question ci-dessus. Je l'ai déjà résolu et fait une soumission réussie, mais ce que je voulais savoir était quelle différence cela ferait-il en ajoutant argh au lieu d'args?

merci d'avance!

+1

C'est le même argument, peu importe comment vous l'appelez. – Eran

+0

Il n'y a pas de différence, ce sont juste des noms différents, vous pouvez les nommer comme vous voulez, mais ce sont les plus communs – Kaiserbogey

+3

Belle collection de tags qui devraient être gravés là – Aaron

Répondre

4

Les signatures de fonction Java sont validées en fonction de leurs types de retour et d'argument, mais ne vérifient jamais le nom des arguments. Cela signifie que

public static void main(String... parameters) { /* [...] */ } 

est une fonction main valide. Cela signifie également que vous n'avez pas besoin d'utiliser les mêmes noms d'argument en tant qu'interface lors de l'implémentation de ses fonctions, ou en tant que classe que vous étendez en surchargeant ses fonctions.