在 Kotlin 中,mapTo
是一种用于将集合中的元素转换成另一个集合的函数。它可以将一个集合的元素映射到另一个集合,并将结果添加到目标集合中。
mapTo
的语法如下:
fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C
其中:
-
T
是源集合中元素的类型。 -
R
是目标集合中元素的类型。 -
C
是目标集合的类型,必须是可变的(即可添加元素)。 -
destination
是目标集合。 -
transform
是用于将源集合元素转换为目标集合元素的函数。
下面是一个示例,展示如何使用 mapTo
将一个 List
中的元素转换为另一个 List
中的元素:
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = mutableListOf<Int>()
numbers.mapTo(squaredNumbers) { it * it }
println(squaredNumbers) // 输出 [1, 4, 9, 16, 25]
在这个示例中,numbers
是一个包含整数的不可变列表。我们创建了一个可变列表 squaredNumbers
,并使用 mapTo
将 numbers
中的元素转换为它们的平方,并将结果添加到 squaredNumbers
中。
mapTo
将每个元素传递给 transform
函数,该函数将它的平方计算并返回。这个结果被添加到 squaredNumbers
中。最后,squaredNumbers
包含的是 numbers
中每个元素的平方。