从零开始学 Kotlin

课程简介

这是一门 Kotlin 语言从零基础到提高的教程,主要内容包括:Kotlin 语法基础、数据类型、字符串、运算符、程序流程控制、函数、高阶函数、Lambda 表达式、函数式编程 API、面向对象、数组、集合、协程、Kotlin 与 Java 互操作编程、DSL 语言和 SQL 框架 Exposed 等技术,最后还介绍了基于 Kotlin 的 Android 应用开发基础,以及使用 Kotlin Android 框架——Anko。

通过本课程的学习和训练,读者能够掌握 Kotlin 语言语法,熟悉 Kotlin 编程习惯,理解函数式编程精髓,进而能够从事以 Kotlin 为语言基础的 Android 应用开发、服务器端开发和前端开发等工作。

作者介绍

关东升,在 IT 领域摸爬滚打20多年的老程序员、软件架构师、高级培训讲师、IT 作家。熟悉 Java、Kotlin、Python、iOS、Android、游戏开发、数据库开发与设计、软件架构设计等多种 IT 技术。

参与设计和开发北京市公交一卡通百亿级大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目。近期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位授课。

著有《Java 从小白到大牛》、《Kotlin 从小白到大牛》、《iOS 开发指南》、《Android 网络游戏开发实战》、《Cocos2d-x 实战》系列和《JSP 网络程序设计》等40多部计算机书籍。

课程内容

导读:为什么选择 Kotlin

2017年5月19日 Google I/O 大会上,谷歌公司宣布 Kotlin 语言作为 Android 应用开发一级语言。由于工作需要的原因,我在 2015 年就接触到 Kotlin 语言,被它的简洁理念深深地吸引。我将以前用 Java 编写的 QQ 聊天工具用 Kotlin 语言重新编写,代码减少了30%。Kotlin 语言的设计者们,设计这门语言的目的是取代 Java。诞生了20多年的 Java 虽然还是排名第一的语言,但 Java 语言有很多诟病,我们从如下几个方面讨论一下。

对函数式编程的支持

Java 对函数式编程的支持不够及时和彻底,直到 Java 8 才开始支持函数式编程,但 Java 8 中并不支持函数类型,不能定义高阶函数;而 Kotlin 彻底支持函数式编程。我们可以比较一些代码:

// Java面向对象代码片段String userId = (String) jsonObj.get("user_id");// 从clientList集合中删除用户for (ClientInfo info : clientList) {    if (info.getUserId().equals(userId)) {        clientList.remove(info);        break;    }}// Kotlin函数式编程代码片段val userId = jsonObject["user_id"] as Stringval clientInfo = clientList.first {    it.userId == userId}// 从clientList集合中删除用户clientList.remove(clientInfo)

从上述代码比较可见函数式编程中不再需要那些 for 和 if 等流程控制语句,对于数据的处理更加简洁。函数式编程并不能完全取代面向对象编程,函数式编程擅长进行数据处理,如核心业务逻辑、算法实现等;而面向对象擅长构建UI界面编程、搭建系统架构等。

异常处理的理念

Java 把异常分为受检查异常和运行期异常,编译器强制要求受检查异常必须捕获或抛出。事实上经过多年的实践,开发者发现即便是捕获了那些受检查异常处理起来也力不从心。受检查异常会使得程序结构变得混乱,代码大量增加。而 Kotlin 把所有的异常都看做是运行期异常,编译器不会强制要求捕获或抛出任何异常,开发人员可以酌情考虑是否捕获处理异常。我们再比较一些代码:

// Java文件复制代码片段try (FileInputStream fis = new FileInputStream("./TestDir/src.zip");        BufferedInputStream bis = new BufferedInputStream(fis);        FileOutputStream fos = new FileOutputStream("./TestDir/subDir/src.zip");        BufferedOutputStream bos = new BufferedOutputStream(fos)) {    // 准备一个缓冲区    byte[] buffer = new byte[1024];    // 首先读取一次    int len = bis.read(buffer);    while (len != -1) {        // 开始写入数据        bos.write(buffer, 0, len);        // 再读取一次        len = bis.read(buffer);    }} catch (FileNotFoundException e) {    e.printStackTrace();} catch (IOException e) {    e.printStackTrace();}// Kotlin函数式编程代码片段FileInputStream("./TestDir/src.zip").use { fis ->    FileOutputStream("./TestDir/subDir/src.zip").use { fos ->        // 复制到输出流        fis.buffered().copyTo(fos.buffered())        println("复制完成")    }}

上述代码实现了文件复制,Java 代码需要21行,而 Kotlin 代码只需要7行。

对可空类型的支持

空指针异常是 Java 最为头痛的问题之一,Java 数据类型可以接收空值。而 Kotlin 数据类型默认不能接收空值,是非空数据类型,这样保证了数据类型的安全,防止空指针异常的发生。

这里我们只是比较了 Java 和 Kotlin 几个最突出的区别,更多的不同和细微的差别,还需要读者阅读此书,并自己编写其中的每一个示例,感受它们与 Java 的不同,感受 Kotlin 的简洁。

第01课:开篇综述

Java 诞生到现在已经有20多年了,Java 仍然是非常热门的编程语言之一,很多平台中使用 Java 开发。但由于历史的原因 Java 语法有些繁琐、冗余,而本书要介绍的 Kotlin 语言设计目标是取代 Java 语言,简化应用开发。

Kotlin 语言简介

Kotlin 语言是基于 Java 虚拟机(Java Virtual Machine,简称 JVM)的现代计算机语言。作为一种 Java 虚拟机语言 Kotlin 编写的程序可以运行在任何Java能够运行的地方。

Kotlin 语言历史

Kotlin 语言是 JetBrains 公司[1]开发的,该公司是著名的计算机语言开发工具提供商,最著名的当属 Java 集成开发工具 IntelliJ IDEA。作为开发工具提供商 JetBrains 对于 Java 语言有着深入的理解,有着迫切地化繁为简的需求。JetBrains 从2010年开始构思,2011年推出 Kotlin 项目;2012年将 Kotlin 项目开源;2016年发布一个稳定版1.0;2017谷歌 I/O 全球开发者大会上,谷歌宣布 Kotlin 语言成为 Android 应用开发一级语言。

至于这种新的语言为什么命名为 Kotlin?这是因为新语言是由 JetBrains 的俄罗斯圣彼得堡罗斯团队设计和开发的,他们想用一个岛来命名新语言,或许有因为 Java 命名源自于爪哇(Java)岛,这里盛产 Java 咖啡。他们找到了位于圣彼得堡以西约30公里处芬兰湾中的一个科特林岛,科特林的英文是 Kotlin,因此将新语言命名为 Kotlin。

Kotlin 语言设计目标

Kotlin 首先被设计为用来取代 Java 语言。目前主要的应用场景:

  • 服务器端编程,基于 JavaEE 的 Web 服务器端开发和数据库编程等。
  • Android 应用开发,替代 Java 语言编写 Android 应用程序。

Kotlin 这两种场景的应用都需要 Java 虚拟机(Java Virtual Machine,JVM)也是本书重点介绍的。此外,Kotlin 还有其他目前处于原型阶段的应用场景:

  • 编译成 JavaScript 代码。Kotlin 代码还可以编译成 JavaScript 代码,这样就可以应用于 Web 前端开发。
  • 编译成本地(Native)代码。Kotlin 代码还可以编译成本地(Native)代码,本地代码运行不再需要 Java 虚拟机,类似于 C 语言。

Kotlin 语言特点

Kotlin 具体现代计算机语言特点,如类型推导、函数式编程等。下面详细解释一下。

简洁

简洁是 Kotlin 最主要的特点,实现同样的功能 Kotlin 代码量会 Java 代码量缩减很多。Kotlin 中数据类、类型推导、Lambda 表达式和函数式编程都可以大大减少代码行数,使得代码更加简洁。

安全

Kotlin 可以有效地防止程序员疏忽所导致的类型错误。Kotlin 与 Java 一样都是静态类型语言[2],编译器会在编译期间检查数据类型,这样程序员会在编码期间发现自己的错误,避免错误在运行运行期发生而导致系统崩溃。另外,Kotlin 与 Swift[3] 类似支持非空和可空类型,默认情况下 Kotlin 与 Swift 的数据类型声明的变量都是不能接收空值(null)的,这样的设计可以防止试图调用空对象而引发的空指针异常(NullPointerException),空指针异常也会导致系统崩溃。

类型推导

Kotlin 与 Swift 类似都支持类型推导,Kotlin 编译器可以根据变量所在上下文环境推导出它的数据类型,这样在变量时可以省略明确指定数据类型。

支持函数式编程

作为现代计算机语言 Kotlin 支持函数式编程,函数式编程优点:代码变得简洁、增强线程安全和便于测试。

支持面向对象

虽然 Kotlin 支持函数式编程,但也不排除面向对象。面向对象与函数式编程并不是水火不容,函数式编程是对面向对象重要补充,而且面向对象仍然是编程语言的主流,面向对象便于系统分析与设计。

Java 具有良好的互操作性

Kotlin 与 Java 具有100%互操作性,Kotlin 不需要任何转换或包装就可以调用 Java 对象,反之亦然。Kotlin 完全可以使用现有的 Java 框架或库。

免费开源

Kotlin 源代码是开源免费的,它采用 Apache 2 许可证,源代码下载地址 详见这里。

Kotlin 与 Java 虚拟机

Kotlin 是依赖于 Java 虚拟机运行的语言,因此初学者有必要熟悉一下 Java 虚拟机作用。

Java 虚拟机

Java 应用程序能够跨平台运行,主要是通过 Java 虚拟机实现的。如图1-1所示,不同软硬件平台 Java 虚拟机是不同的,Java 虚拟机往下是不同的操作系统和 CPU,使用或开发时需要下载不同的 JRE 或 JDK 版本。Java 虚拟机往上是 Java 应用程序,Java 虚拟机屏蔽了不同软硬件平台,Java应用程序不需要修改,不需要重新编译直接可以在其他平台上运行。

从零开始学 Kotlin_第1张图片

图1-1 Java 虚拟机

Kotlin 应用程序运行过程

要了解 Kotlin 应用程序运行过程,则需要先了解 Java 应用的运行过程。

Java 程序运行过程如图1-2所示,首先由 Java 编译器将 Java 源文件(*.java文件)编译成为字节码文件(*.class文件),这个过程可以通过 JDK(Java 开发工具包)提供的 javac 命令进行编译。当运行 Java 字节码文件时,由 Java 虚拟机中的解释器将字节码解释成为机器码去执行,这个过程可以通过 JRE(Java 运行环境)提供的 Java 命令解释运行。

从零开始学 Kotlin_第2张图片

图1-2 Java 程序运行过程

基于 Java 虚拟机的 Kotlin 应用程序运行过程类似于 Java 程序运行过程,其过程如图1-3所示,首先由 Kotlin 编译器将 Kotlin 源文件(*.kt 文件)编译成为字节码文件(* Kt.class 文件),注意这个过程中文件名会发生变化,会增加 Kt 后缀,例如,Hello.kt 源文件编译后为 HelloKt.class 文件。编译过程可以通过 Kotlin 编译器提供的 kotlinc 命令进行编译。当运行 Kotlin 字节码文件时,由 Java 解释器将字节码解释成为机器码去执行,这个过程也是通过 java 命令解释,但需要 Kotlin 运行时库支持才能正常运行。

从零开始学 Kotlin_第3张图片

图1-3 Kotlin 基于 Java 虚拟机的应用程序运行过程

如何获得帮助

对于一个初学者必须要熟悉如下几个 Kotlin 相关网址:

  • Kotlin 源代码网址
  • Kotlin 官网
  • Kotlin 官方参考文档
  • Kotlin 标准库

下面重点说明 Kotlin 标准库,其他的网址不再赘述。Kotlin 标准库是由 Kotlin 官方开发的,Kotlin 语言是基于 Java 的,能够与 Java 完全地互操作,所以 Kotlin 可以调用 Java 对象,反之亦然。所以,Kotlin 语言尽可能利用 Java 自带库,然后在这些库上进行一些扩展(Extension)和必要的封装,这就是 Kotlin 标准库所包含的内容。

提示:扩展(Extension)是 Kotlin、C#、Swift 和 Objective-C 等语言特有的新功能,类似于继承机制,它可以在一个已有的类上扩展函数或属性,从而为该类添加新功能。有关扩展后面第10章会详细介绍。

作为 Kotlin 程序员应该熟悉如何使用 Kotlin 标准库的 API 文档。打开 Kotlin 标准库网址,页面如图1-4所示。

从零开始学 Kotlin_第4张图片

图1-4 Kotlin 标准库的 API 文档

下面介绍一下如何使用 API 文档,熟悉一下 API 文档页面中的各个部分含义,如图1-5所示是 Array 类 API 文档,从图中可见类中包含:构造函数、函数和扩展函数,此外,还包含属性和从父类继承下来的函数和属性等内容。接口与类 API 的类似这里不再赘述。

从零开始学 Kotlin_第5张图片

图1-5 API 文档页面各个部分


[1] JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄罗斯的圣彼得堡及美国的波士顿设有开发团队。

[2] 静态类型语言会在编译期检查变量或表达式数据类型,如 Java 和 C++ 等。与静态类型语言相对应的是动态类型语言,动态类型语言会在运行期检查变量或表达式数据类型,如 Python 和 PHP 等。

[3] Swift 语言是苹果公司推出的编程语言,目前主要应用于苹果的 macOS、iOS、tvOS 和 watchOS 4 等应用开发。

第02课:开发环境搭建

《论语•魏灵公》曰:“工欲善其事,必先利其器”,做好一件事,准备工作非常重要。在开始学习 Kotlin 技术之前,先介绍如何搭建 Kotlin 开发环境是非常重要的一件事件。

开发 Kotlin 主要的 IDE(Integrated Development Environments,集成开发环境)工具有:IntelliJ IDEA、Eclipse 和 Android Studio,IntelliJ IDEA 和 Eclipse 可以编写一般的 Kotlin 程序,使用 Eclipse 开发 Kotlin 程序需要安装插件。要想编写 Android 应用程序需要使用 Android Studio 工具,如果使用 Android Studio 3 之前版本需要安装 Kotlin 插件。

另外,JetBrains 提供的工具 Kotlin 编译器,开发人员可以使用文本编辑工具来编写 Kotlin 程序,然后再使用 Kotlin 编译器来编译程序。

本课介绍 IntelliJ IDEA、Eclipse 和 Kotlin 编译器,以及 JDK 的安装和配置,而 Android Studio 安装配置超出了本书的范围。

提示:考虑到大部分读者使用的还是 Windows 系统,因此本书重点介绍 Windows 平台下 Kotlin 开发环境的搭建。

JDK 工具包

JDK(Java Development Kit,JDK)工具包是最基础的 Java 开发工具,IntelliJ IDEA、Eclipse 和 Kotlin 编译器等工具也依赖于 JDK。

JDK 下载和安装

截止本书编写完成为止,Oracle 公司对外发布了最新 JDK 9,但 JDK 8 是主流版本,因此本书推荐使用 JDK 8。图2-1所示是 JDK 8 下载页面,它的下载地址请单击这里。其中有很多版本,支持的操作系统有 Linux、Mac OS X[1]、Solaris[2] 和 Windows。

注意选择对应的操作系统,以及32位还是64位安装的文件。

如果电脑是 Windows 10 64 位系统,则首先选中 Accept License Agreement(同意许可协议),然后单击 jdk-8u131-windows-x64.exe 下载 JDK 文件。

从零开始学 Kotlin_第6张图片

图2‑1 下载 JDK8 页面

下载完成后就可以安装了,双击 jdk-8u131-windows-x64.exe 文件即可安装,安装过程中会弹出如图2-2所示的“内容选择”对话框,其中“开发工具”是 JDK 内容;“源代码”是安装 Java SE 源代码文件,如果安装源代码,安装完成后会见如图2-3所示的 src.zip 文件就是源代码文件;公共 JRE 就是 Java 运行环境了,这里可以不安装,因为 JDK 文件夹中也会有一个 JRE,如图2-3所示的 jre 文件夹。

从零开始学 Kotlin_第7张图片

图2‑2 安装内容选择对话框

从零开始学 Kotlin_第8张图片

图2‑3 JDK 安装后的内容

设置环境变量

完成之后,需要设置环境变量,主要包括:

  • JAVA_HOME 环境变量,指向 JDK 目录,很多 Java 工具运行都需要的JAVA_HOME环境变量,所以笔者推荐大家添加这变量。

  • 将 JDK\bin 目录添加到 Path 环境变量中,这样在任何路径下都可以执行 JDK 提供的工具指令。

首先需要打开 Windows 系统环境变量设置对话框,打开该对话框有很多方式,如果 Windows 10 系统,则打开步骤是:右击屏幕左下角的 Windows 图标,单击“系统”菜单,然后弹出如图2-4所示的 Windows 系统对话框,单击左边的“高级系统设置”超链接,打开如图2-5所示的高级系统设置对话框。

从零开始学 Kotlin_第9张图片

图2‑4 Windows 系统对话框

从零开始学 Kotlin_第10张图片

图2‑5 高级系统设置对话框

在如图2-5所示的高级系统设置对话框中,单击“环境变量”按钮打开环境变量设置对话框,如图2-6所示,可以在用户变量(上半部分,只配置当前用户)或系统变量(下半部分,配置所有用户)添加环境变量。一般情况下,在用户变量中设置环境变量。

从零开始学 Kotlin_第11张图片

图2‑6 环境变量设置对话框

在用户变量部分单击“新建”按钮,系统弹出对话框,如图2-7所示。设置“变量名”设置为JAVA_HOME,“变量值”设置为 JDK 安装路径。最后单击“确定”按钮完成设置。然后追加 Path 环境变量,在用户变量中找到 Path,双击 Path 弹出 Path 变量对话框,如图2-8(a)所示,单击“新建”按钮,追加%JAVA_HOME%\bin,如图2-8(b)所示。追加完成单击“确定”按钮完成设置。

从零开始学 Kotlin_第12张图片

图2‑7 设置 JAVA_HOME

从零开始学 Kotlin_第13张图片

图2‑8 追加 Path 变量对话框

下面测试一下环境设置是否成功,可以通过在命令提示行中输入 javac 指令,看是否能够找到该指令,如图2-9所示,则说明环境设置成功。

从零开始学 Kotlin_第14张图片

图2‑9 通过命令提示行测试环境变量

提示:打开命令行工具,也可以通过右击屏幕左下角的 Windows 图标,单击“命令提示符”菜单实现。

IntelliJ IDEA 开发工具

IntelliJ IDEA 是 JetBrains 官方提供的 IDE 开发工具,主要用来编写 Java 程序,也可以编写 Kotlin 程序。JetBrains 公司开发的很多工具都好评如潮,如图2-10所示 JetBrains 开发的工具,这些工具可以编写 C/C++、C#、DSL、Go、Groovy、Java、JavaScript、Kotlin、Objective-C、PHP、Python、Ruby、Scala、SQL 和 Swift 语言。

从零开始学 Kotlin_第15张图片

图2-10 JetBrains 公司工具

单击这里下载IntelliJ IDEA,如图2-11所示页面可以见,IntelliJ IDEA 有两个版本:Ultimate(旗舰版)和 Community(社区版)。旗舰版是收费的,可以免费试用30天,如果超过30天,则需要购买软件许可(License key)。社区版是完全免费的,对于学习 Kotlin 语言社区版已经足够了。在图2-11页面下载 IntelliJ IDEA 工具,完成之后即可安装了。

从零开始学 Kotlin_第16张图片

图2-11 下载 IntelliJ IDEA

Eclipse 开发工具

Eclipse 是著名的跨平台 IDE 工具,最初 Eclipse 是 IBM 支持开发的免费 Java 开发工具,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金会管理。Eclipse 的本身也是一个框架平台,它有着丰富的插件,例如 C++、Python、PHP 等开发其他语言的插件。另外,Eclipse 是绿色软件不需要写注册表,卸载非常方便。

Eclipse 下载和安装

本书采用 Eclipse 4.6[3] 版本作为 IDE 工具,请单击这里下载 Eclipse 4.6,如图2-12所示是 Windows 系统的下载 Eclipse 下载页面,单击“DOWNLOAD 64 bit”按钮页面会跳转到,如图2-13所示的选择下载镜像地址页面,单击 Select Another Mirror 连接可以改变下载镜像地址,然后单击 DOWNLOAD 按钮开始下载。

从零开始学 Kotlin_第17张图片

图2‑12 Eclipse 4.6 下载页面

从零开始学 Kotlin_第18张图片

图2‑13 选择下载镜像地址

下载完成后的文件是 eclipse-inst-win64.exe,事实上 eclipse-inst-win64.exe 是安装各种 Eclipse 版本客户端,双击 eclipse-inst-win64.exe 弹出如图2-14所示的界面,选择 Eclipse IDE for Java Developers 进入如图2-15所示的界面,在该界面中 Installation Folder 可以改变安装目录,选中 create start menu entry 可以添加快捷方式到开始菜单,选中 create desktop shortcut 可以在桌面创建快捷方式,设置完成后单击 INSTALL 按钮开始安装,安装完成如果2-16所示,单击 LAUNCH 按钮启动 Eclipse。

从零开始学 Kotlin_第19张图片

图2‑14 安装各种 Eclipse 版本客户端

从零开始学 Kotlin_第20张图片

图2‑15 Eclipse 安装

从零开始学 Kotlin_第21张图片

图2‑16 Eclipse 安装完成

在 Eclipse 启动过程中,会弹出如图2-17所示,选择工作空间(Workspace)对话框,工作空间是用来保存项目的目录。默认情况下每次 Eclipse 启动时候都需要选择工作空间,如果你觉得每次启动时都选择工作空间比较麻烦,可以选中 Use this as the default and to not ask again 选项,设置工作空间默认目录。初次启动 Eclipse 成功后,会进入如图2-18所示的欢迎界面。

从零开始学 Kotlin_第22张图片

图2‑17 选择工作空间

从零开始学 Kotlin_第23张图片

图2‑18 Eclipse 欢迎界面

安装 Kotlin 插件

Kotlin 插件可以通过 Eclipse Marketplace 在线安装,Eclipse Marketplace 是 Eclipse 插件市场。安装 Kotlin 插件过程如下,首先启动 Eclipse,选择菜单 Help→Eclipse Marketplace 弹出如图2-19所示的对话框,在 Find 文本框中输入“kotlin”查询关键字,然后再单击 Go 按钮进行查询。查询结果如图2-20所示,单击 Install 按钮就可以安装了。

从零开始学 Kotlin_第24张图片

图2‑19 安装插件

从零开始学 Kotlin_第25张图片

图2‑20 查询结果

Kotlin 编译器

IDE 开发工具提供了强大开发能力,提供了语法提示功能,但对于学习 Kotlin 的学员而言语法提示并不是件好事,笔者建议初学者采用文本编辑工具 +Kotlin 编译器学习。开发过程就使用文本编辑工具编写 Kotlin 源程序,然后使用 Kotlin 编译器提供的 kotlinc 指令编译 Kotlin 源程序,再使用 Kotlin 编译器提供的 kotlin 指令运行。

下载 Kotlin 编译器

截止本书编写完成为止,Kotlin 最新版本是 1.1.5,Kotlin 发布网址请单击这里,打开该网址看到如图2-21所示页面,其中 kotlin-compiler-1.1.51.zip 可以下载 Kotlin 编译器。另外,Source code (zip) 和 Source code (tar.gz) 感兴趣可以下载。

从零开始学 Kotlin_第26张图片

图2‑21 下载 Kotlin 页面

在图2-21页面单击 kotlin-compiler-1.1.51.zip 超链接下载 Kotlin 编译器压缩文件,下载完成之后解压该文件,其中 kotlinc\bin 存放了各种平台的 kotlin 和 kotlinc 指令。

设置 Kotlin 编译器环境变量

设置 Kotlin 编译器环境变量与 JDK 设置环境变量类似。需要设置环境变量,主要包括:

  • KOTLIN_HOME环境变量,指向 Kotlin 编译器目录。

  • 将 Kotlin 编译器下的 bin 目录添加到 Path 环境变量中,这样在任何路径下都可以执行 Kotlin 编译器提供的工具指令。

首先参考2.1.1节添加JAVA_HOME变量的过程添加KOTLIN_HOME变量,如图2-22所示,设置“变量名”设置为KOTLIN_HOME,“变量值”设置为 Kotlin 编译器解压路径。然后参考2.1.1节将 Kotlin 编译器下的 bin 目录追加到 Path 环境变量,如图2-23所示追加%KOTLIN_HOME%\bin

从零开始学 Kotlin_第27张图片

图2‑22 设置KOTLIN_HOME

从零开始学 Kotlin_第28张图片

图2‑23 追加 Path 变量对话框

下面测试一下环境设置是否成功,可通过在命令提示行中输入 kotlinc –version或kotlin -version 指令,如果出现如图2-9所示的内容,则说明环境设置成功。

从零开始学 Kotlin_第29张图片

图2‑24 通过命令提示行测试环境变量

文本编辑工具

Windows 平台下的文本编辑工具有很多,常用如下:

  • 记事本:Windows 平台自带的文本编辑工具,关键字不能高亮显示。
  • UltraEdit:历史悠久强大的文本编辑工具,可支持文本列模式等很多有用的功能,请参见官网。
  • EditPlus:历史悠久强大的文本编辑工具,小巧、轻便、灵活,请参见官网。
  • Sublime Text:近年来发展和壮大的文本编辑工具,所有的设置没有图形界面,在 JSON[4] 格式的文件中进行的,初学者入门比较难,请参见官网。各个平台都有 Sublime Text 版本。

由于目前开源社区为 Sublime Text 提供了一些扩展功能,而且各个平台都有 Sublime Text 版本,因此本书重点介绍 Sublime Text。下面介绍在 Sublime Text 中安装 Kotlin 语言包和 Sublime Text 与 Kotlin 编译器集成。

在Sublime Text 中安装 Kotlin 语言包

在 Sublime Text 中安装 Kotlin 语言包后,Kotlin 关键字等内容会高亮显示。GitHub 上有开发人员提供了一个针对 Sublime Text 2 的 Kotlin 语言包,这个语言包也适用于 Sublime Text 3。打开上述 Github 网址,找到下载和安装说明,如图2-25所示,笔者推荐下载 Kotlin.sublime-package,这种包文件安装方便。

从零开始学 Kotlin_第30张图片

图2‑25 Kotlin 语言包下载和安装说明

在如图2-25所示的页面中单击 Kotlin.sublime-package 超链接下载该文件,下载完成后将 Kotlin.sublime-package 文件复制到 \Data\Installed Packages 中,然后重启 Sublime Text,打开 Kotlin 源文件,会看到如图2-26所示界面中 Kotlin 的关键字等内容会高亮显示。

从零开始学 Kotlin_第31张图片

图2‑26 安装 Kotlin 语言包

Sublime Text 与 Kotlin 编译器集成

Sublime Text 与 Kotlin 编译器集成后,就可以在 Sublime Text 中编译和运行 Kotlin 程序了,而不用在命令提示行等终端中编译和运行。GitHub 上也有人提供了一个针对 Sublime Text 与 Kotlin 编译器集成文件 kotlin.sublime-build,文件内容如下:

{    "cmd": ["path\\to\\Kotlinc\\bin\\kotlinc.bat", "$file", "-include-runtime", "-d", "$file_path\\\\$file_base_name.jar"],        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",    "working_dir": "$file_path",    "selector": "source.Kotlin",    "windows": {        "encoding": "utf-8"    },    "variants": [        {            "name": "Run",            "cmd": ["java", "-jar", "$file_path\\\\$file_base_name.jar"]        }    ]}

重新编辑 kotlin.sublime-build 内容,修改第一行中的“path\to\Kotlinc\bin\kotlinc.bat”修改为“C:\kotlinc\bin\kotlinc.bat”,其中 C:\kotlinc 是笔者自己的 Kotlin 编译器安装目录,读者根据自己情况修改这个路径。修为完成将 kotlin.sublime-build 文件复制到 \Data\Packages\User 中,然后重启 Sublime Text,如果安装成功可以在 Sublime Text 菜单 Tools→Build System 中找到 kotlin 子菜单项,如图2-27所示。

从零开始学 Kotlin_第32张图片

图2‑27 安装成功

具体使用是选择菜单 Tools→Build With 或快捷键 Ctrl+Shift+B,则打开如图2-28所示的选择对话框,其中选择 kotlin 是编译当前 Kotlin 源文件,如图2-29所示,选择 kotlin-Run 是运行 Kotlin 程序,如图2-30所示。

从零开始学 Kotlin_第33张图片

图2‑28 选择对话框

从零开始学 Kotlin_第34张图片

图2‑29 编译 Kotlin 源文件

从零开始学 Kotlin_第35张图片

图2‑30 运行 Kotlin 程序

每一种文本编辑工具的配置方式都有很大差别,这里笔者不能一一穷尽,其他工具的配置过程读者可以参考工具的官方资料。

小结

通过对本课的学习,读者可以了解 Kotlin 开发工具,其中重点是 IntelliJ IDEA 工具的下载、安装和使用。此外,还介绍了其他的一些工具:Eclipse 和 Kotlin 编译器+Sublime Text 文本编辑工具的配置过程。


[1] 苹果桌面操作系统,基于 UNIX 操作系统,现在改名为 macOS。

[2] 原 Sun 公司 UNIX 操作系统,现在被 Oracle 公司收购。

[3] Eclipse 4.6 开发代号是 Neon(氖气),Eclipse 开发代号的首字母是按照字母顺序排列的。Eclipse 4.7 开发代号是 Oxygen(氧气)。

[4] JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式,采用键值对形式,如:{"firstName": "John"}。

第03课:第一个 Kotlin 程序
第04课:Kotlin 语法基础
第05课:数据类型
第06课:字符串
第07课:运算符
第08课:程序流程控制
第09课:Kotlin 函数式编程
第10课:Kotlin 面向对象
第11课:数组和集合
第12课:Kotlin 并发访问技术——协程
第13课:Kotlin 与 Java 互操作编程
第14课:DSL 语言与轻量级 SQL 框架——Exposed
第15课:基于 Kotlin 的 Android 应用开发与 Anko 框架

阅读全文: http://gitbook.cn/gitchat/column/5a4ccd9a5e04d7622ba2ab93

你可能感兴趣的:(从零开始学 Kotlin)