2.4 面向表达式编程 2021-07-11

在本章之前的几节中,我们已经好几次与一个关键字打过交道,这就是“表达式”。现在罗列下我们已经提及的表达式:

1. if表达式

2. 函数提表达式

3 .Lambda表达式

4 .函数引用表达式

显然,表达式在Kotlin这门语言中处于一个相当重要的地位,这一节我们会着重介绍在Kotlin中如何利用各种表达式来增强程序表达式、流程控制的能力。与Java等语言稍显不同的是,Kotlin中的流程控制不再是清一色的普通语句,它们可以返回值,是一些崭新的表达式语句,如if表达式、when表达式、try表达式等。这样的设计自然与表达式自身的特质相关。在了解具体的语法之前,我们先来探讨下表达式和普通语句之前的区别。

表达式 和 语句虽然是基本的概念,但也经常被混淆和误解。语句很容易理解,我们在一开始学习命令式编程的时候,程序往往是有一个个语句组成的。比如以下这个例子:

基本语句

可以看到,该程序依次进行了赋值、循环控制、打印等操作。这些都可以被称为语句。我们再来对其进行解释和计算,以求产生另一个值。

通俗的理解,表达式就是返回的语句。我们来写几个表达式的例子:

1 // 单纯的字面量表达式,值为1

-1 // 增加前缀操作符,值为-1

1+1 // 加法操作符,返回2

listOf(1,2,3) // 列表表达式

"kotlin".length // 值为6

这些都是非常明显的表达式。以下是Kotlin中更复杂的表达式:

{ x: Int -> x+1} //Lambda表达式,类型为(Int):Int

fun(x: Int){ println(x) } //匿名函数表达式类型为类型为(Int):Unit

if( x > 1) x else 1 // if-else 表达式,类型为Int,假设x已赋值

正如我们所言,一些在其他语言中的普通语句,在Kotlin中也可以是表达式。这样设计到底有什么好处?

你可能感兴趣的:(2.4 面向表达式编程 2021-07-11)