Kotlin学习系列文章Overview

2,115 阅读3分钟

就在两年前,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环境配置就够了。

基础语法

进阶内容

  • 范围函数(let/run/with...)
  • 操作符重载
  • Lamda表达式
  • 高阶函数
  • 内联inline

缺点与不足

  1. 顶级函数缺乏命名空间,这让我们在读相关代码时很难快速定位用的是哪一个函数。
  2. 空安全并非绝对安全,在与Java互操作过程中可能仍会发生异常。
  3. 与java的互调用语法不友好,容易出错。
  4. 非受检异常,这意味着编译器不会强迫你捕获其中的任何一个,但这样做也许会导致运行时抛出异常。

延伸拓展