使用 Kotlin 进行 Android 编程
by Pierre-Olivier Laurence, Amanda Hinchman-Dominguez, G. Blake Meike, Mike Dunn
第 1 章 Kotlin 基础
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
Kotlin 由俄罗斯圣彼得堡的 JetBrains 团队创建。 JetBrains 最著名的产品可能是 IntelliJ Idea IDE,它是 Android Studio 的基础。Kotlin 现已广泛应用于多个操作系统的各种环境中。自谷歌宣布在 Android 上支持 Kotlin 以来,已有近五年的时间。据Android 开发者博客称,截至 2021 年,Google Play 商店中有超过 120 万个应用程序使用了 Kotlin,其中前一千个应用程序中有 80% 使用了 Kotlin。
如果你拿起了这本书,我们假设你已经是一名 Android 开发人员,并且熟悉 Java。
Kotlin 的设计目的是与 Java 互操作。就连它的名字,也是取自圣彼得堡附近的一个小岛,暗指印度尼西亚的一个小岛 Java。尽管 Kotlin 支持其他平台(iOS、WebAssembly、Kotlin/JS 等),但 Kotlin 能够得到广泛应用的关键在于它对 Java 虚拟机(JVM)的支持。由于 Kotlin 可以编译成 Java 字节码,因此它可以运行在任何有 JVM 的地方。
本章的大部分讨论都会将 Kotlin 与 Java 进行比较,但重要的是要明白,Kotlin 并非只是添加了一些功能和口哨的热身 Java。Kotlin 是一种全新的、与众不同的语言,它与 Scala、Swift 和 C# 的联系几乎与 Java 的联系一样紧密。它有自己的风格和习语。虽然可以用 Java 思维编写 Kotlin,但用习语化的 Kotlin 思维将充分展现该语言的威力。
我们意识到,可能有一些 Android 开发人员使用 Kotlin 已经有一段时间了,他们根本没有编写过 Java。如果你是这样的人,也许可以略过本章及其对 Kotlin 语言的回顾。不过,即使你对这门语言相当熟悉,这也是一个提醒自己注意一些细节的好机会。
本章并不是要全面介绍 Kotlin,因此如果你是 Kotlin 的完全新手,我们推荐你阅读优秀的《Kotlin in Action》。1 本章将回顾一些 Kotlin 基础知识:类型系统、变量、函数和类。 即使你不是 Kotlin 语言专家,本章也能为你理解本书的其他内容打下足够的基础。
与所有静态类型语言一样,Kotlin 的类型系统是 Kotlin 用来描述自身的元语言。 因为它是讨论 Kotlin 的一个重要方面,所以我们将首先回顾一下它。
Kotlin 类型系统
与 Java 一样,Kotlin 也是一种静态类型语言。Kotlin 编译器知道程序所操作的每个实体的类型。它可以对这些实体进行2
并利用这些推论,识别出代码与这些推论相矛盾时会出现的错误。类型检查允许编译器捕捉和标记一大类编程错误。 本节将重点介绍 Kotlin 类型系统中一些最有趣的特性,包括Unit 类型、函数式类型、空安全和泛型。
原始类型
Java 和 Kotlin 的类型系统最明显的区别在于,Kotlin 没有原始类型的概念。
Java 有int,float,boolean 等类型。这些类型的特殊之处在于它们并不继承于 Java 的基本类型Object 。例如,语句int n = null; 就不是合法的 Java 类型。List<int> integers; 也不是。为了减少这种不一致性,Java 的每个基元类型都有一个 ...