函数到lambda表达式

函数到lambda表达式,lambda,kotlin,data-class,Lambda,Kotlin,Data Class,我有一个数据类,需要初始化一些列表。我需要获取JsonArray的值(我使用的是Gson) 我做了这个功能: private fun arrayToList(data: JsonArray, key: String): List<String> { val list = mutableListOf<String>() data.forEach { a -> list.add(a[key].asString) } r

我有一个数据类,需要初始化一些
列表
。我需要获取JsonArray的值(我使用的是Gson)

我做了这个功能:

private fun arrayToList(data: JsonArray, key: String): List<String> {
    val list = mutableListOf<String>()

    data.forEach { a ->
        list.add(a[key].asString)
    }

    return list
}
private-fun数组列表(数据:JsonArray,键:String):列表{
val list=mutableListOf()
data.forEach{a->
list.add(一个[key].asString)
}
返回列表
}
如何转换为lambda表达式


谢谢。

我想您正在寻找
地图
操作:

data.map { a -> a[key].asString }
或者您可以使用默认参数名

data.map { it[key].asString }

如果使用
map
函数,可以将其作为单个表达式编写

private fun arrayToList(data: JsonArray, key: String): List<String> = 
    data.map { it[key].asString }
private-fun数组列表(数据:JsonArray,键:String):列表=
data.map{it[key].asString}

map
函数接受一种类型的参数并将其转换为另一种类型。我还利用了Kotlin中的默认元素名被称为
it
,因此我不必像在Java中那样显式地定义一些东西。因此,这表示“对于
数据中的每个对象
,获取
值并在其上调用
.asString
。这将自动转换为
列表

,非常感谢!