Kotlin 函数式编程:从基础到实践
1. 技术要求
在开始之前,需要满足以下技术要求:
- IntelliJ IDEA 2018.3 社区版或终极版,或更新版本
- 网络连接
- Git 和 GitHub(可选)
若要下载相关代码,可访问以下 GitHub 链接:https://github.com/PacktPublishing/Mastering-Kotlin/tree/master/Chapter12 。
2. 理解函数式编程
函数式编程是一种声明式编程范式,程序通过纯数学函数来表达。其核心在于通过纯函数对数据进行转换,具有变量不可变性和副作用有限两个重要特性。
2.1 纯函数
纯函数是函数式编程的核心概念,严格意义上的纯函数以数学运算的形式表达。这赋予了函数式编程两个有趣的特性:
- 变量的不可变性
- 无副作用
这些特性在编写 Kotlin 代码或其他语言代码时都有很大的好处。
2.2 不可变性
构建程序通常涉及对复杂状态的建模和管理。面向对象编程虽然便于建模状态,但容易引发数据同步和一致性问题。若表示状态的模型可随时更改,就难以推断应用程序的当前状态,也难以理解状态的操作时间、位置和方式。
而函数式代码中变量和状态的不可变特性非常有吸引力。如果表示状态的模型是不可变的,创建或修改状态的契约就会更加明确。要表示新状态,必须创建一个新的模型来保存该状态,这样更容易追踪,因为可以依赖任何给定变量的静态、不变状态。
当与函数式编程的另一个有用特性——有限