在 Kotlin 中将整数列表转换为字符串列表

Kri*_* Jc 4 jvm kotlin gradle-kotlin-dsl

我有一个类似的列表[1,2,3,4,5],我正在尝试转换为列表["1","2","3","4","5"]

我尝试这样做

   val numbers = listOf(1, 2, 3, 4, 5)
   val numbersStr = mutableListOf<String>()
   
   val itr = numbers.listIterator()
   while(itr.hasNext())
    {
        numbersStr.add(itr.next().toString())
    }
Run Code Online (Sandbox Code Playgroud)

但我觉得它有点冗长,并且没有使用 Kotlin 的内置函数。

最好的选择是什么?

sid*_*ate 8

查看kotlin的map功能

val numberStr = listOf(1, 2, 3, 4, 5).map { it.toString() }
Run Code Online (Sandbox Code Playgroud)

  • `val numberStr = listOf(1, 2, 3, 4, 5).map(Int::toString)` (2认同)
  • 使用 lambda 还是函数引用只是个人喜好的问题,因为功能上没有差异,性能上也没有任何实际差异。就我个人而言,我发现 lambda 版本更容易阅读。维护起来也更容易;例如,如果您想将“.0”附加到字符串中,则必须编写一个单独的包装函数来引用,而 lambda 可以调整为“map{“$it.0”}`。 (2认同)