就在两年前,2017年I/O大会上,谷歌宣布在其 Android Studio 3.0 中支持Kotlin,仅仅两年时间Kotlin以其简洁、安全、高扩展等特性迅速占领了移动开发市场。
谷歌在今年的I/O大会宣布,“Kotlin 编程语言现在是Android应用程序开发人员(超过五成)的首选语言,新的Jetpack API和特性将首先在Kotlin中提供支持。
另一方面由于Google和Oracle公司旷日持久的Java侵权案也是导致Google加速推进Kotlin发展的重要原因。
基于以上,我建议你开始学习Kotlin并陆续在项目中使用Kotlin,一方面可以提高开发效率,另一方面也能尽快拥抱Android的新变化、新特性。
本系列试图将Kotlin语言最核心的内容以最简洁的方式呈现出来,如果你想参看更为完整的语法内容,移步Kotlin官网文档,Kotlin中文站点。
文章持续更新中,Let's get started!
Overview
Kotlin语言是静态强类型JVM语言,与Java相比,Kotlin的语法更简洁,而且提供了更多的特性,比如,空安全、高阶函数、操作符重载、字符串模板等,同时它与Java高度可互操作,完全可同时在一个项目中使用。这保证你可以先用Kotlin开发项目的一个模块或改造一个原有模块。
Kotlin语言的主要特点包括:
- 简洁 Kotlin的简洁性体现在类型推断、语法糖等方面,它比Java更简洁。
- 安全 指的是空安全,Kotlin引入可空类型,在编译阶段会提示可能的空指针问题。
- 高效 object支持单例,data class避免手写getter/setter模板方法、支持扩展方法等。
- 支持Lambda、函数式编程 使代码更具可读性,更专注于业务代码。
- 支持扩展 这意味着,即使我们没有权限去访问这个类中的代码,我们也可以扩展这个类的更多的特性。
- 可与Java高度互操作 Kotlin与Java 100%兼容。
在Android平台还有更多的支持:
- Anko Android开发工具箱,使Android开发更快速更简单,同时支持布局DSL、sqlite DSL。
- KTX Jetpack基础类库,使开发者用最简洁的语言编写Android代码。
- 协程 轻量级线程,更高效的异步编程API。
下面会分章节对整个Kotlin语言的语法、特性一一的拆解说明。
学习Kotlin之前先要配置Kotlin编译环境,可查看这篇文章Android Studio Kotlin环境配置就够了。
基础语法
- 变量与方法
- 修饰符与运算符
- 类与构造函数
- 成员变量与get/set方法
- 类型体系与空安全
- 循环和条件控制
- 静态成员与伴生对象
- 数据类data与单例类object
- 扩展函数
- 委托代理 by
- java互操作
进阶内容
- 范围函数(let/run/with...)
- 操作符重载
- Lamda表达式
- 高阶函数
- 内联inline
缺点与不足
- 顶级函数缺乏命名空间,这让我们在读相关代码时很难快速定位用的是哪一个函数。
- 空安全并非绝对安全,在与Java互操作过程中可能仍会发生异常。
- 与java的互调用语法不友好,容易出错。
- 非受检异常,这意味着编译器不会强迫你捕获其中的任何一个,但这样做也许会导致运行时抛出异常。
延伸拓展
- Anko
- KTX
- 协程