Kotlin Tutorial入门
如果你是一个Android或Java技术开发人员,Groovy、Scala、JRuby或Jython这些JVM Language,或许曾经听过、看过,甚至已经研究过,不过你可能最后还是回到Java程序语言的怀抱。
Java程序设计语言已经二十几岁了,如果有人问我「Java是不是一种「好」程序语言?」,我都会这么回答「只要是可以帮我付账单和贷款的,都是一种「好」技术」,算是巧妙的回避问题。因为如果叫我想五个对于Java程序设计语言的形容词,其中会有三个是比较负面的。如果针对具备三年以上Java程序设计师进行问卷调查,同样请大家想五个形容词,不知道会有什么样的结果。
Kotlin是一个比较新的JVM程序语言,它是在2011年7月由JetBrains发表的项目,JetBrains是开发工具IntelliJ IDEA的开发商,Android Studio就是以IntelliJ IDEA为基础的Android官方开发工具。Kotlin v1.0在2016年2月发表,是第一个由JetBrains发布的Kotlin正式版本。
对我来说,Kotlin跟其它JVM程序语言最大的差异,倒不是架构或语法,而是2017年5月的Google开发人员大会,发布Android支持Kotlin为官方的程序设计语言。从Android Studio 3开始,开发人员可以直接使用Kotlin开发Android App。
Kotlin FAQ
已经熟悉Java程序设计语言
- 我为什么要从Java转换成Kotlin?
这个问题的另外一面,可能是「我花了几年的时间才完全熟悉Java,现在又要我学另一种程序语言,你最好是给我一个非常好、而且很明确的道理」。虽然这是一个很严肃的问题,不过我只能提供自己的几个想法给你参考:
- 不论是以开发人员或讲师的角色来说,Java技术的确是不算简单的
- 那Kotlin比Java简单吗?对我来说,是的
- 同样功能的程序代码,Kotlin比Java的程序代码清爽多了(官方说最多可以减量40%)
- Kotlin同样是在JVM运作,Java在这方面的特性Kotlin也有
- Kotlin可以完全取代Java?
- 开发Android App:是的
- 开发Java应用程序,例如WEB、JavaFX:可以(没有「是的」那么肯定)
- Kotlin官方网站说未来还会支持嵌入式、MacOS、iOS
- Kotlin可以和Java一起运作?
是的。Kotlin可以使用Java程序代码,Java也可以使用Kotlin程序代码。
- Kotlin和Java的语法很不一样吗?
是的。不一样的程度可以想象成长得有点像的父子或母女。(这其实是废话,这样的形容几乎可以套用在所有不同的程序语言)
- Kotlin也有Java 8的Lambda(functional programming)?
有。
- Kotlin采用哪一种授权方式?
Apache Software License, Version 2.0。
- 需要花费多少时间学习Kotlin?
如果选择一个好的教材,可以很容易把你在Java累积的技能快速转换到Kotlin。(广告:例如这个系列专栏就是好的教材,未来可能会出版电子书或实体书)
还不认识Java程序设计语言
- 我想要学习开发Android App,那我应该要先学Java还是Kotlin?
开发Android App使用Java或Kotlin都可以,都是官方正式支持的程序设计语言。你可以从几个想法去选择:
- 想要比较快速进入开发Android App的阶段:选择Kotlin
- 以开发Android App为主要的学习目的:选择Kotlin
- 不知道该怎么选择,也没有任何想法:选择Kotlin
- Java跟Kotlin哪一个比较容易学习?
我觉得Kotlin比Java容易学习。我的说法应该算是有说服力的,毕竟我已经当了十年以上的讲师,而且以Java与Android课程为主。
- 听说学会Java以后可以写很多种程序,Kotlin也可以吗?
Java程序设计语言可以开发网页、嵌入式、桌面与Android应用程序,Kotlin也可以。
- Kotlin程序设计语言有哪些书和学习资源?
目前只有少数几本英文书,网络的学习资源以Kotlin官方网站为主,也是英文。(广告:这个系列专栏是学习Kotlin不错的资源,未来可能会出版电子书或实体书)
- 目前Android App的范例与资源都是用Java写的,Kotlin也可以使用吗?
在Android App项目里面,Kotlin和Java程序代码可以一起使用,也可以互相使用对方写的程序代码。
建立Kotlin开发环境
开发Kotlin应用程序需要安装Java SE JDK与开发工具,Kotlin开发环境有下面几种选择:
- JetBrains的IntelliJ IDEA
- Eclipse与Kotlin Plugin
- 在终端机编译与执行
- 使用建置工具,包含常见的Ant、Maven与Gradle
这里使用的开发工具是IntelliJ IDEA Community,其它方式请参考Kotlin官方网站的说明。
下载与安装JDK
Kotlin需要Java SE JDK 1.6或更新的版本,如果你的计算机还没有安装Java SE JDK,依照下列的步骤下载与安装,或是参考后面的示范影片:
1. 开启浏览器,在网址列输入这个网址http://www.oracle.com/。
2. 将鼠标光标移到「Downloads」,选择左侧的「Java Developers」。
3. 选择「JDK」的「DOWNLOAD」的下载图示。
4. 进入下载JDK的网页以后,选择「Accept License Agreement」,依照你的操作系统版本选择下载的链接,如果是32位就选择「Windows x86」,64位的话选择「Windows x64」。
5. 储存下载的档案,下载完成后执行这个档案开始安装的步骤,建议使用默认的安装路径,在后续的安装过程中全部选择「Next >」。
6. 在完成安装的窗口选择「Close」。
详细的操作步骤可以参考下面的示范影片:
下载与安装IntelliJ IDEA Community
JetBrains提供免费开放版本的IntelliJ IDEA Community,它完整支持Kotlin程序设计语言。依照下面的步骤执行下载与安装的工作:
1. 开启浏览器,在网址列输入这个网址https://www.jetbrains.com/idea/download/。
2. 选择「Community」的「DOWNLOAD」,储存与执行下载的安装程序:
3. 启动安装程序后,在欢迎画面选择「Next>」。
4. 在选择安装位置(Choose Install Location)画面选择「Next>」。
5. 在安装选项(Installation Options)画面,依照计算机的操作系统,勾选「32-bit launcher」或「64-bit launcher」, 最后选择「Next>」:
6. 在选择开始菜单(Choose Start Menu Folder)画面选择「Install」开始安装。
7. 在完成安装的画面,勾选「Run IntelliJ IDEA Community Edition」后选择「Finish」:
8. 安装程序自动启动IntelliJ IDEA Community,第一次启动后在「Complete Installation」对话框选择「Do not import settings」,最后选择「OK」:
9. 在「Customize IntelliJ IDEA」画面,选择开发工具的样式为「IntelliJ」或「Darcula」,最后选择「Skil All and Set Defaults」:
10.出现IntelliJ IDEA的主画面,完成安装与初始设定:
Hello World!
1. 在IntelliJ IDEA的主画面选择「Create New Project」:
2. 在「New Project」窗口选择「Java」后,选择右上角的「New…」:
3. 在「Select Home Directory for JDK」窗口,选择JDK的安装文件夹后选择「OK」:
4. 回到「New Project」窗口,Project SDK已经设定为上一步骤的选择:
5. 在「New Project」窗口的「Additional Libraries and Frameworks」勾选「Kotlin(Java)」后选择「Next」:
6. 在「Project name」输入项目名称,例如「HelloKotlin」,最后选择「Finish」。
7. 在出现「Tip of the Day」对话框,取消「Show Tips on Startup」勾选,再选择「Close」,以后启动就不会再出现这个对话框。
8. 第一次建立Kotlin项目会花费一些时间执行初始化的工作。
9. 完成初始化工作后,在项目的「src」目录按鼠标右键,选择「New -> Kotlin File/Class」:
10.在「New Kotlin file/class」对话框的「Name:」输入程序代码文件名,例如「HelloWorld」,最后选择「OK」。
11.在新建立的程序代码档案输入下面的内容:
12. fun main(args: Array) {
13. println("Hello World!")
}
14.用鼠标光标选择Kotlin图标后选择「Run 'HelloWorld.kt'」,也可以使用快捷键「Ctrl+Shift+F10」:
15.执行程序以后在画面下方显示「Hello World!」:
第一个Kotlin程序代码FAQ
- 不需要宣告类别?
是的。
- 「fun」好像是用来宣告main方法?
是的。Kotlin程序的进入点(Java的main方法),是一个名称为「main」,参数为「Array、字符串数组」的函式。
- println为什么没有System.out?
其实println是Kotlin定义在Console.kt里面的函式。
- 叙述的最后面不需要分号(;)?
是的。你也可以加上分号,不过那是多余的。如果需要在一行执行多个叙述,可以使用分号隔开。例如:
fun main(args: Array) {
println("One"); println("Two")
}
下一步
想要赶快开始写Kotlin程序?在安装好开发环境以后,接下来的「10分钟认识Kotlin」,使用精心挑选的主题,让你快速认识Kotlin的基本精神。
相关的档案都可以在GitHub浏览与下载。