📅  最后修改于: 2023-12-03 15:37:23.137000             🧑  作者: Mango
Kotlin 提供了 map()
函数,它可以将一个列表转换成另一个具有相同元素数量的列表,但每个元素都经过了某种操作。
val newList = list.map { element -> operation_on_element }
其中,newList
是操作后的新列表,list
是操作前的原列表,element
是原列表中的每个元素,operation_on_element
是针对每个元素执行的操作。
比如,原列表中每个元素都是字符串:
val oldList = listOf("apple", "banana", "cherry")
val newList = oldList.map { it.uppercase() }
println(newList)
// 输出:[APPLE, BANANA, CHERRY]
这里,it
是一个隐式变量,表示 element
,uppercase()
是字符串类型的内置函数,将字符串转换成大写。
更复杂的操作需要使用 lambda 表达式,比如,在原列表中每个字符串后面添加数字:
val oldList = listOf("apple", "banana", "cherry")
val newList = oldList.map { element ->
val index = oldList.indexOf(element) + 1
element + index
}
println(newList)
// 输出:[apple1, banana2, cherry3]
这里,index
是小于等于原列表长度的数字,表示该元素在原列表中的位置,element + index
是字符串拼接运算符,将原列表中的每个字符串后面添加数字。
return
语句,但只能用于退出 lambda 表达式,不能用于退出函数。返回值是最后一个操作的结果。