《Kotlin从小白到大牛》第3章:第一个Kotlin程序

第3章 第一个Kotlin程序

本章以HelloWorld作为切入点,介绍如何编写和运行Kotlin程序代码。
编写和运行Kotlin程序有多种方式,总的来说可以分为:
1.交互式方式运行
2.编译为字节码文件方式运行
交互式方式运行可以采用REPL。编译为字节码方式运行就是使用IntelliJ IDEA或Eclipse创建一个项目,通过这些工具可以编译和运行Kotlin源文件。另外还可以使用文本编辑工具编写Kotlin源文件,再使用Kotlin编译器提供的kotlinc命令在命令提示行中编译Kotlin源程序,然后再通过kotlin命令或JDK提供的java命令运行。
本章介绍如何使用这些工具实现HelloWorld程序。

3.1 使用REPL

REPL是英文Read-Eval-Print Loop缩写,直译为“读取-求值-输出”,它指代一种简单的交互式运行编程环境。REPL对于学习一门新的编程语言具有很大的帮助,因为它能立刻对初学者做出回应。许多编程语言可以使用REPL研究算法以及进行调试。
启动REPL可以通过Kotlin编译器提供的kotlinc命令或IntelliJ IDEA工具中选择Tools→Kotlin→Kotlin REPL菜单。打开命令提示行输入kotlinc命令,如图3-1所示启动REPL,Kotlin REPL提供一些前面带有冒号(:)的管理指令,例如“:quit”指令是退出REPL,“:help”指令是帮助。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第1张图片
在REPL窗口中可以输入Kotlin代码,键入Enter键后马上会运行并输出结果,测试代码如下:

1+1 ①
2 ②

val str = “Hello, world.” ③
println(str) ④
Hello, world. ⑤

“>>>”后面的Kotlin代码,见代码第①行、第③行和第④行都是代码,而代码第②行、第⑤行是运行结果。

3.2 使用IntelliJ IDEA实现

上一节介绍了如何以交互式方式编写和运行Kotlin程序代码,交互式方式在很多情况下适合学习Kotlin语言阶段,但是如果要使用Kotlin语言开发实际项目,交互式方式就不适合了。此时,需要创建项目,在项目中创建文件,编译文件,运行文件。
首先介绍如何使用IntelliJ IDEA创建Kotlin项目以编写和运行HelloWorld程序。

3.2.1 创建项目
首先在IntelliJ IDEA中通过项目(Project)管理Kotlin源代码文件,因此需要先创建一个Kotlin项目,然后在项目中创建一个Kotlin源代码文件。
IntelliJ IDEA创建项目步骤是:打开如图3-2所示IntelliJ IDEA的欢迎界面,单击Create New Project打开如图3-3所示的对话框。一般第一次启动Xcode就可以看到这个界面,如果没有,也可以通过选择菜单File→New→Project打开。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第2张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第3张图片
由于要编写的HelloWorld程序属于基于Java虚拟机的Kotlin项目,因此需要创建Kotlin/JVM类型项目,在图3-3中选择Java中Kotlin/JVM(如图3-4(a)所示),或者选择Kotlin中Kotlin/JVM(如图3-4(b)所示)都可以创建Kotlin/JVM类型项目。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第4张图片
如果选择了如图3-4(b)所示界面Kotlin/JVM类型项目,然后单击Next按钮进入如图3-5所示的界面。在Project name中输入项目名,本例中是项目ch3.2,Project location中选择保存项目路径,选择合适的Project SDK后,单击Finish按钮创建项目,如图3-6所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第5张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第6张图片
3.2.2 创建Kotlin源代码文件
项目创建完成后,需要创建一个Kotlin源代码文件执行控制台输出操作。选择刚刚创建的项目,选中src文件夹,然后选择菜单File
→New→Kotlin File/Class,打开新建Kotlin文件或类对话框,如图3-7所示在对话框中Name文本框中输入HelloWorld,Kind(类型)下拉框中选择File(文件),然后单击OK按钮创建文件,如图3-8所示,在左边的项目文件管理窗口中可以看到刚刚创建的HelloWorld.kt源代码文件。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第7张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第8张图片
3.2.3 编写代码
要想让Kotlin源代码文件能够运行起来,需要main函数,它是为程序的入口,与C++语言中的main函数类似,都不属于任何的类,称为顶层函数(top-level function)。但是与Java不同,Java中程序的入口也是main函数,而但Java中所有的函数都必须在某个类中定义,main函数也不例外。
编写代码如下:
fun main(args: Array) {
println(“Hello, world!”)
}
如果是Java实现同样功能的代码如下:
public class HelloWorld {

        public static void main(String[] args) {
            System.out.print("Hello, world!"); 
        }

}

3.2.4 运行程序
程序编写完成可以运行了。如果是第一次运行,则需要在左边的项目文件管理窗口中选择HelloWorld.kt文件,右击菜单中选择Run 'HelloWorldKt’运行,运行结果如图3-9所示在左下面的控制台窗口输出Hello,
world!字符串。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第9张图片
在这里插入图片描述

3.3 使用IntelliJ IDEA+Gradle实现

Gradle是一个基于Apache Ant和Apache Maven的项目自动化建构工具。它不是用传统的XML语言描述,而是使用一种基于Groovy的特定领域语言(DSL)来描述的。IntelliJ IDEA工具内置对Gradle的支持,可以通过IntelliJ IDEA+Gradle构建Java和Kotlin项目。
首先,看看如何在IntelliJ IDEA中创建Gradle+Kotlin/JVM项目步骤与创建Kotlin/JVM项目类似,首先参考3.2.1节打开图3-3所示的选择项目类型对话框,选择Gradle中的Kotlin(Java),如图3-10所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第10张图片
在图3-10所示界面,单击Next按钮进入Gradle配置项目名对话框,在各个项目中输入相应内容,如图3-11所示,其中GroupId是公司或组织域名倒置;ArtifactId是项目名称,GroupId可以省略,但是ArtifactId不能省略;Version是该项目的版本号,用于自己项目版本管理。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第11张图片
在图3-11所示界面,单击Next按钮进入Gradle项目配置对话框,如图3-12所示,其中各个选项说明如下:
o Use auto-import。是否开启自动导入功能,如果开启,当修改Gradle脚本文件时,后会自动检测变化并对项目进行刷新。
o Create separate module per source set。每个模块都有独立的源代码目录结构。
o Stroe generated project files externally。项目生成文件是否不进行版本管理。在IntelliJ IDEA项目中会有一些项目生成文件,如.ipr、.iml和.iws等文件。在团队开发时,往往会使用代码版本控制软件,这些文件是不应该提交服务器进行版本控制的。开启此项后,这些自动生成文件不会被提交服务器进行版本管理。
o Use default gradle wrapper (recommended)。使用默认的Gradle Wrapper,它会通过网络自动更新,这是推荐选项。
o Use local gradle distribution。使用本地的Gradle Wrapper,选择此项需要指定本地Gradle Wrapper的位置。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第12张图片
在图3-12所示界面,单击Next按钮进入项目保存界面,输入文件名并选择保存文件路径,单击Finish按钮创建项目完成,如图3-13所示,其中项目下的/src/main目录是源代码根目录,一般而言main下面的java目录放置java源代码, kotlin目录放置Kotlin源代码文件,resource放置资源文件(图片、声音和配置等文件)。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第13张图片
IntelliJ IDEA+Gradle项目编写代码和运行程序都与IntelliJ IDEA项目没有区别,这里不再赘述。

3.4 使用Eclipse+Kotlin插件实现

本节介绍如何通过Eclipse+Kotlin插件实现编写和运行HelloWorld程序。

3.4.1 创建项目
在Eclipse中也是通过项目管理Kotlin源代码文件的,因此需要先创建一个Kotlin项目,然后在项目中创建一个Kotlin源代码文件。
Eclipse创建项目步骤是:打开Eclipse,选择菜单File→New→Project,打开选择项目向导对话框,如图3-14所示,选择Kotlin下面的Kotlin Project。单击Next按钮,进入如图3-15所示的对话框,在这里可以输入项目名和保存项目,输入完成后,单击Finish按钮创建项目。项目创建完成后,回到如图3-16所示的Eclipse主界面。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第14张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第15张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第16张图片
3.4.2 创建Kotlin源代码文件
项目创建完成后,需要创建一个Kotlin源代码文件执行控制台输出操作。选择刚刚创建的项目,选中项目中src文件夹,然后选择菜单File
→New→Other,打开创建文件向导对话框,如图3-17所示,选择Kotlin下面的Kotlin File。单击Next按钮,进入如图3-18所示的保存文件对话框,其中Source folder文本框是文件保存文件夹,默认是src文件夹;Package文本框该文件所在的包,有关包的概念将在第4章详细介绍。在这里可以输入文件名,输入完成后,单击Finish按钮创建文件,文件创建完成后,回到如图3-19所示的Eclipse主界面。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第17张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第18张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第19张图片
3.4.3 运行程序
修改刚刚生成的HelloWorld.kt源文件,代码如图3-20所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第20张图片
程序编写完成可以运行了。如果是第一次运行,则需要选择运行方法,具体步骤是:选中文件,选择菜单Run→Run As→Kotlin Application,这样就会运行HelloWorld程序了。如果已经运行过程一次,就不需要这么麻烦了,直接单击工具栏中的Run按钮,或选择菜单Run→Run,或使用快捷键Ctrl+F11,都可以就运行上次的程序了。运行结果如图3-21所示,Hello, world!字符串到下面的控制台。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第21张图片

3.5 文本编辑工具+Kotlin编译器实现

如果不想使用IDE工具(笔者建议出学者通过这种方式学习Kotlin),那么文本编辑工具+Kotlin编译器对于初学者而言是一个不错的选择,这种方式可以使初学者了解到Kotlin程序的编译和运行过程,通过自己在编辑器中敲入所有代码,可以帮助熟悉常用函数和类,能快速掌握Kotlin语法。
在这里插入图片描述
3.5.1 编写代码
首先使用任何文本编辑工具创建一个文件,然后将文件保存为HelloWorld.kt。接着在HelloWorld.kt文件中编写如下代码:
fun main(args: Array) {
println(“Hello, world!”)
}

3.5.2 编译程序
编译程序需要在命令行中使用Kotlin编译器的kotlinc指令编写,打开命令行,进入到源文件所在的目录,然后执行如下指令:
kotlinc HelloWorld.kt
如果没有错误提示,说明编译成功。编译成功后会当前目录下面生成HelloWorldKt.class字节码文件,如图3-22所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第22张图片
另外,为了方便运行和管理,往往会将Kotlin字节码文件和Kotlin运行时打包成一个独立的jar文件,需要执行如下指令:
kotlinc HelloWorld.kt -include-runtime -d HelloWorld.jar
其中-include-runtime参数是设置jar文件中包含Kotlin运行时库,-d参数是指定编译结果输出目的地,这个目的地可以目录或jar打包文件。编译成功后会当前目录下面生成HelloWorld.jar打包文件,如图3-23所示。打开HelloWorld.jar文件,如图3-24所示,kotlin和org两个文件夹事实上就是Kotlin运行时库,META-INF文件夹是jar打包时生成的,用来存放包中文件清单等信息。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第23张图片
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第24张图片
3.5.3 运行程序
3.3.2节编译的结果可能是Kotlin字节码文件或包含Kotlin运行时库的jar文件。这两种不同的文件运行方式不同,但本质上都是使用java命令运行的。
1.运行Kotlin字节码文件
Kotlin字节码文件最简单的方式是使用Kotlin编译器提供的kotlin命令,指令如下:
kotlin HelloWorldKt
运行过程如图3-25所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第25张图片
2.运行包含Kotlin运行时库的jar文件
运行包含Kotlin运行时库的jar文件,需要使用指令如下:
java -jar HelloWorld.jar
运行过程如图3-26所示。
《Kotlin从小白到大牛》第3章:第一个Kotlin程序_第26张图片

3.6 代码解释

至此只是介绍了如何编写、编译和运行HelloWorld程序,还没有对如下的HelloWorld代码进行解释。
fun main(args: Array) { ①
println(“Hello, world!”) ②
}
从代码中可见,Kotlin实现HelloWorld的方式比Java、C和C++等语言要简单得多,下面详细解释一下代码。
代码第①行的fun 关键字是声明一个函数,main是函数名,args 是参数;Array是参数类型,该类型是字符串数组类型。代码第②行是println函数是在控制台输出字符串,并且后面跟有一个换行符。类似还有print函数,该函数后面没有换行符。
在这里插入图片描述

本章小结

本章通过一个HelloWorld示例,介绍如何使用IntelliJ IDEA和IntelliJ IDEA+Gradle工具实现该示例具体过程。此外,还介绍了其他的一些工具:Eclipse+Kotlin和文本编辑器+Kotlin编译器实现过程。

你可能感兴趣的:(Kotlin从小白到大牛)