Java 中的 args 和 argh 和 argv 有什么区别?
What is the difference between args and argh and argv in Java?
在 hackerrank 上练习一些问题时,一些解决方案使用 argh 而不是 args(我经常使用)。另外,我知道还有另一个这样的参数可以传递给 main() 函数,那就是 argv。因此,总共存在三个不同的参数:
参数
唉
argv
能否请您告诉我这三者之间的区别以及如何以及何时使用它们?
这是代码:
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();
}
}
请注意,我不是在寻求上述问题的解决方案。我已经解决了它并成功提交,但我想知道添加 argh 而不是 args 会有什么不同?
提前致谢!
Java 函数签名根据它们的 return 和参数类型进行验证,但从不检查参数的名称。这意味着
public static void main(String... parameters) { /* [...] */ }
是一个有效的 main
函数。
这也意味着您在实现其功能时不必使用与接口相同的参数名称,或者在重载其功能时作为扩展的class。
在 hackerrank 上练习一些问题时,一些解决方案使用 argh 而不是 args(我经常使用)。另外,我知道还有另一个这样的参数可以传递给 main() 函数,那就是 argv。因此,总共存在三个不同的参数:
参数
唉
argv
能否请您告诉我这三者之间的区别以及如何以及何时使用它们?
这是代码:
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();
}
}
请注意,我不是在寻求上述问题的解决方案。我已经解决了它并成功提交,但我想知道添加 argh 而不是 args 会有什么不同?
提前致谢!
Java 函数签名根据它们的 return 和参数类型进行验证,但从不检查参数的名称。这意味着
public static void main(String... parameters) { /* [...] */ }
是一个有效的 main
函数。
这也意味着您在实现其功能时不必使用与接口相同的参数名称,或者在重载其功能时作为扩展的class。