一、Kotlin语言简介
1、Kotlin是由JetBrains公司开发与设计的,早在2011年,JetBrains就公布了Kotlin的第一个版本,并在2012年将其开源,但在早期,它并没有受到太多的关注。
2016年,Kotlin发布了1.0正式版,这代表着Kotlin已经足够成熟和稳定了,并且JetBrains也在自家的旗舰IDE开发工具IntelliJ IDEA中加入了对Kotlin的支持,自此Android开发语言终于有了另外一种选择,Kotlin逐渐受到广泛的关注。
2017年Google宣布Kotlin正式成为Android一级开发语言,Android Studio也加入了对Kotlin的支持,Kotlin自此开始大放异彩。
2、看到这里,或许你会产生一些疑惑:Android操作系统明明是由Google开发的,为什么JetBrains作为一个第三方公司,却能够自己设计出一门编程语言来开发Android应用程序呢?
想要搞懂这个问题,我们得先来探究一下Java语言的运行机制。编程语言大致可以分为两类:编译型语言和解释型语言。编译型语言的特点是编译器会将我们编写的源代码一次性地编译成计算机可识别的二进制文件,然后计算机直接执行,像C和C++都属于编译型语言。解释型语言则完全不一样,它有一个解释器,在程序运行时,解释器会一行行地读取我们编写的源代码,然后实时地将这些源代码解释成计算机可识别的二进制数据后再执行,因此解释型语言通常效率会差一些,像Python和JavaScript都属于解释型语言。
3、Java是属于编译型语言还是解释型语言呢?
对于这个问题,即使是做了很多年Java开发的人也可能会答错。有Java编程经验的人或许会说,Java代码肯定是要先编译再运行的,初学Java的时候都用过javac这个编译命令,因此Java属于编译型语言。如果这也是你的答案的话,那么恭喜你,答错了!虽然Java代码确实是要先编译再运行的,但是Java代码编译之后生成的并不是计算机可识别的二进制文件,而是一种特殊的class文件,这种class文件只有Java虚拟机(Android中叫ART,一种移动优化版的虚拟机)才能识别,而这个Java虚拟机担当的其实就是解释器的角色,它会在程序运行时将编译后的class文件解释成计算机可识别的二进制数据后再执行,因此,准确来讲,Java属于解释型语言。
了解了Java语言的运行机制之后,其实Java虚拟机并不直接和你编写的Java代码打交道,而是和编译之后生成的class文件打交道。那么如果我开发了一门新的编程语言,然后自己做了个编译器,让它将这门新语言的代码编译成同样规格的class文件,Java虚拟机能不能识别呢?没错,这其实就是Kotlin的工作原理了。Java虚拟机不关心class文件是从Java编译来的,还是从Kotlin编译来的,只要是符合规格的class文件,它都能识别。也正是这个原因,JetBrains才能以一个第三方公司的身份设计出一门用来开发Android应用程序的编程语言。
二、Kotlin优点
Kotlin的语法更加简洁,对于同样的功能,使用Kotlin开发的代码量可能会比使用Java开发的减少50% 甚至更多。另外,Kotlin的语法更加高级,相比于Java比较老旧的语法,Kotlin增加了很多现代高级语言的语法特性,使得开发效率大大提升。还有,Kotlin在语言安全性方面下了很多工夫,几乎杜绝了空指针这个全球崩溃率最高的异常,至于是如何做到的,我们在稍后就会学到。然而Kotlin在拥有众多出色的特性之外,还有一个最为重要的特性,那就是它和Java是100%兼容的。Kotlin可以直接调用使用Java编写的代码,也可以无缝使用Java第三方的开源库。这使得Kotlin在加入了诸多新特性的同时,还继承了Java的全部财富。
三、Kotlin的基础使用
1、Kotlin的运行方式
Kotlin运行方法大概有以下3种
第一种方法是使用IntelliJ IDEA。这是JetBrains的旗舰IDE开发工具,对Kotlin支持得非常好。在IntelliJ IDEA里直接创建一个Kotlin项目,就可以独立运行Kotlin代码了。但是这种方法的缺点是你还要再下载安装一个IDE工具,有点麻烦,因此这里我们就不使用这种方法了。
第二种方法是在线运行Kotlin代码。为了方便开发者快速体验Kotlin编程,JetBrains专门提供了一个可以在线运行Kotlin代码的网站,地址是:https://play.kotlinlang.org,打开网站之后的页面如图1所示:
只要点击一下右上方的“Run”按钮就可以运行这段Kotlin代码了,非常简单。但是在线运行Kotlin代码有一个很大的缺点,就是使用国内的网络访问这个网站特别慢,而且经常打不开,而且没有语法排查功能和提示功能,不推荐使用。
第三种方法是使用Android Studio。遗憾的是,Android Studio作为一个专门用于开发Android应用程序的工具,只能创建Android项目,不能创建Kotlin项目。但是没有关系,我们可以随便打开一个Android项目,在里面编写一个Kotlin的main()函数,就可以独立运行Kotlin代码了,如图2所示:
在MainActivity的同级包结构下创建一个LearnKotlin文件。右击com.example.helloworld包→New→Kotlin File/Class,选择File,在弹出的对话框中输入“Student”,如图3所示。点击“OK”即可完成创建。
接下来,我们在这个Student文件中编写一个main()函数,并打印一行日志,如图4所示:
你会发现,main()函数的左边出现了一个运行标志的小箭头。现在我们只要点击一下这个小箭头,并且选择第一个Run选项,就可以运行这段Kotlin代码了。运行结果会在Android Studio下方的Run标签中显示,如图5所示:报错,因为要在AS里配置Kotlin相关的插件才行
(1)在APP摸块Build.gradle:添加如下引用
在android模块里面引用
(2)在项目级模块Build.gradle:添加如下引用
添加完上面的配置同步或重启AS就可以正常使用Kotlin语文编程了。如图所示: