面试题答案
一键面试Kotlin中Lambda表达式基本语法结构
- 基本语法:Lambda表达式本质上是一段匿名函数代码块。其基本语法结构为:
{ 参数列表 -> 函数体 }
- 参数列表:参数列表可以为空,多个参数之间用逗号分隔。例如:
{ a: Int, b: String -> }
。参数的类型声明是必须的。 - 箭头符号:
->
用于分隔参数列表和函数体。 - 函数体:即具体要执行的代码逻辑,可以有多行代码。如果函数体只有一行代码,大括号可以省略(在某些情况下)。例如:
{ it * 2 }
这里it
是默认的单个参数。
- 作为变量:可以将Lambda表达式赋值给一个变量。例如:
val sum: (Int, Int) -> Int = { a, b -> a + b }
println(sum(3, 5))
这里(Int, Int) -> Int
表示这个Lambda接受两个Int
类型参数并返回一个Int
类型值。
在集合操作场景下Lambda表达式的使用
- 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
判断元素是否为偶数,筛选出所有偶数元素。
- map操作:
map
用于对集合中的每个元素进行转换,返回一个新的集合,新集合元素数量与原集合相同。
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers)
在这个例子中,map
接受的Lambda表达式将每个元素进行平方操作,返回一个包含所有元素平方值的新集合。