Kotlin 面试题
目录

Kotlin 中 Lambda 表达式的语法是什么?

· 约 4 分钟读完 · 第 54 / 200 章

推荐答案

在 Kotlin 中,Lambda 表达式的语法如下:

  • 参数列表:Lambda 表达式的参数列表,可以包含零个或多个参数。参数类型可以显式声明,也可以由编译器推断。
  • 函数体:Lambda 表达式的执行逻辑,可以是一个表达式或一段代码块。如果函数体是一个表达式,则其值会自动作为 Lambda 的返回值。

示例:

本题详细解读

Lambda 表达式的基本语法

Lambda 表达式是 Kotlin 中一种简洁的函数表示方式,通常用于高阶函数中。它的语法结构如下:

  • 参数列表:Lambda 表达式的参数列表可以包含零个或多个参数。如果参数类型可以从上下文中推断出来,则可以省略类型声明。例如:

    在这个例子中,x 的类型 Int 可以从 square 的类型声明中推断出来。

  • 函数体:Lambda 表达式的函数体可以是一个表达式或一段代码块。如果函数体是一个表达式,则其值会自动作为 Lambda 的返回值。如果函数体是一个代码块,则需要显式使用 return 语句返回值。例如:

    这个 Lambda 表达式返回一个布尔值,表示输入的数字是否为偶数。

Lambda 表达式的简化

Kotlin 提供了多种简化 Lambda 表达式的语法:

  1. 省略参数类型:如果参数类型可以从上下文中推断出来,则可以省略类型声明。例如:

  2. 使用 it:如果 Lambda 表达式只有一个参数,则可以使用 it 来引用该参数,而不需要显式声明参数列表。例如:

  3. 省略括号:如果 Lambda 表达式是函数的最后一个参数,则可以将 Lambda 表达式放在函数调用的括号外面。例如:

Lambda 表达式的返回值

Lambda 表达式的返回值是函数体中最后一个表达式的值。如果函数体是一个代码块,则需要显式使用 return 语句返回值。例如:

在这个例子中,max Lambda 表达式返回两个整数中的较大值。

Lambda 表达式的类型

Lambda 表达式的类型是一个函数类型,通常表示为 (参数类型) -> 返回类型。例如:

在这个例子中,sum 的类型是 (Int, Int) -> Int,表示它接受两个 Int 类型的参数并返回一个 Int 类型的值。

Lambda 表达式的使用场景

Lambda 表达式通常用于高阶函数中,例如 map、filter、forEach 等。它们可以简化代码并提高可读性。例如:

在这个例子中,map 函数接受一个 Lambda 表达式作为参数,用于将列表中的每个元素平方。