kotlin的主要功能:
fun main(args : Array<String>) {
println("Hello, world!")
}
为什么要传入数组?
答案 0 :(得分:5)
main
的签名基于Java虚拟机expects:
方法
main
必须声明为public, static, and void
。它必须指定一个声明的类型为字符串数组的形式参数(第8.4.1节)。因此,可以使用以下任何一种声明:public static void main(String[] args) public static void main(String... args)
这是Kotlin编译器将您的主要功能编译到的内容。从Kotlin 1.3开始,显式Array<String>
可以省略,但在字节码中仍然可用。
答案 1 :(得分:0)
该数组包含传递给程序的命令行参数。
您也可以忽略它,如果您不想使用它们,也可以只写:
fun main() {
println("Hello, world!")
}
我已经太晚了,无法在此处链接到JLS for Test.main
(s1m0nw1 already did;我刚刚准备走了;-))
但是,尽管如此,我还是要为String
的选择添加一些内容(例如,我为什么选择String
):对于所有可能的命令行参数,它可能是最常见的分母。 Any
/ Object
太宽;您只能在命令行中将数字或字符串传递给程序(管道的处理方式不同)。但是拥有数字类型太狭窄了,因此剩下的唯一可接受的类型是String
,它可以表示两种类型。仍然需要解析数字,但是最好用数字来解释字符串;-)
答案 2 :(得分:0)
Collections
在JAVA 1中不存在。因此,Array
是默认选择。另外,命令行提供的参数均为字符串格式,因此我们使用Array<String>
。为了保持与JAVA的互操作性,Kotlin遵循相同的约定。但是,随着Kotlin 1.3的更新,这一点也被省略了。现在,您可以使用main()
函数,而无需传递args:Array<String>
。
答案 3 :(得分:0)
您正在定义应用程序的入口点。在这种情况下,应用程序将从主功能开始运行。传递参数类型为String的Array。