MST

星途 面试题库

面试题:Kotlin中Lambda表达式的基本语法及使用场景

请详细阐述Kotlin中Lambda表达式的基本语法结构,并举例说明在集合操作(如filter、map等)场景下,Lambda表达式是如何使用的。
35.6万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

Kotlin中Lambda表达式基本语法结构

  1. 基本语法:Lambda表达式本质上是一段匿名函数代码块。其基本语法结构为:
{ 参数列表 -> 函数体 }
  • 参数列表:参数列表可以为空,多个参数之间用逗号分隔。例如:{ a: Int, b: String -> }。参数的类型声明是必须的。
  • 箭头符号-> 用于分隔参数列表和函数体。
  • 函数体:即具体要执行的代码逻辑,可以有多行代码。如果函数体只有一行代码,大括号可以省略(在某些情况下)。例如:{ it * 2 } 这里it是默认的单个参数。
  1. 作为变量:可以将Lambda表达式赋值给一个变量。例如:
val sum: (Int, Int) -> Int = { a, b -> a + b }
println(sum(3, 5)) 

这里(Int, Int) -> Int表示这个Lambda接受两个Int类型参数并返回一个Int类型值。

在集合操作场景下Lambda表达式的使用

  1. filter操作filter用于从集合中筛选出符合条件的元素,返回一个新的集合。
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) 

这里filter接受一个Lambda表达式,it代表集合中的每个元素,通过it % 2 == 0判断元素是否为偶数,筛选出所有偶数元素。

  1. map操作map用于对集合中的每个元素进行转换,返回一个新的集合,新集合元素数量与原集合相同。
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) 

在这个例子中,map接受的Lambda表达式将每个元素进行平方操作,返回一个包含所有元素平方值的新集合。