Java 为什么阵列<;字符串>;为kotlin中的主函数选择的参数类型?
kotlin的主要功能是:Java 为什么阵列<;字符串>;为kotlin中的主函数选择的参数类型?,java,kotlin,jvm,Java,Kotlin,Jvm,kotlin的主要功能是: fun main(args : Array<String>) { println("Hello, world!") } funmain(args:Array){ println(“你好,世界!”) } 为什么传入数组?该数组包含传递给程序的命令行参数 如果您不想使用它们,也可以省略它,即您也可以只写: fun main() { println("Hello, world!") } 我已经太晚了,无法链接到此处(;我刚刚准备好并离开;-))
fun main(args : Array<String>) {
println("Hello, world!")
}
funmain(args:Array){
println(“你好,世界!”)
}
为什么传入数组?该数组包含传递给程序的命令行参数 如果您不想使用它们,也可以省略它,即您也可以只写:
fun main() {
println("Hello, world!")
}
我已经太晚了,无法链接到此处(;我刚刚准备好并离开;-))
但尽管如此,我还是想添加一些关于
String
选择的内容(即我对选择String
的看法):它可能是所有可能的命令行参数的最常见分母任何
/对象
太宽;只能在命令行中将数字或字符串传递给程序(管道的处理方式不同)。但是数字类型太窄,所以剩下的唯一可接受的类型是String
,它可以同时表示这两种类型。如果要使用数字,仍然需要解析数字,但这比用数字解释字符串要好;-) main的签名基于Java虚拟机:
方法main
必须声明为public、static和void
。它必须指定一个形式参数(§8.4.1),其声明类型为字符串数组。因此,以下任一声明均可接受:
public static void main(String[] args)
public static void main(String... args)
这就是Kotlin编译器编译主函数的目的。从Kotlin 1.3开始,显式的
数组可以省略,但在字节码中仍然可用。集合在JAVA 1中不存在。因此,Array
是默认选择。命令行提供的参数也是字符串格式,因此我们使用Array
。为了保持与JAVA的互操作性,Kotlin遵循了相同的约定。但是,随着Kotlin 1.3的更新,这也被省略了。现在,您可以使用main()。在这种情况下,应用程序将从主函数开始运行。传递String类型的参数数组。为什么显式使用数组或参数?如果主函数不执行任何操作,那么为什么需要它?我假设主函数执行其他函数。不,等等。。。main
-函数实际上是应用程序的入口点。。。或者换句话说:如果没有main
-函数,您的程序将无法运行。。。例如,使用它,您可以调用:javatestkt
,它将运行您的程序(如果main
被放在名为Test.kt
的文件中,并被编译成class
-文件等.pp),因此,例如:如果您使用IDE“运行”您的文件,而没有main
-函数,它将根本不会运行(存在例外情况,例如,您也可以运行测试和其他东西…)谢谢。但是他们选择String[]
作为传递的类型有什么原因吗?您通常会启动这样的jvm程序:java[…]ClassX arg1 arg2 arg3
,这将使args在String[]中可用
对于ClassX的Main,您会使用什么其他类型来传递命令行参数?对于C等其他语言也是如此: