📜  在 Kotlin 中使用 Map函数转换列表(1)

📅  最后修改于: 2023-12-03 15:37:23.137000             🧑  作者: Mango

在 Kotlin 中使用 Map 函数转换列表

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 是一个隐式变量,表示 elementuppercase() 是字符串类型的内置函数,将字符串转换成大写。

更复杂的操作需要使用 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 是字符串拼接运算符,将原列表中的每个字符串后面添加数字。

注意事项
  • 不要修改原列表中的元素,应该创建新的列表。
  • 在 lambda 表达式中可以使用 return 语句,但只能用于退出 lambda 表达式,不能用于退出函数。返回值是最后一个操作的结果。