lambda 表达式的函数
Function to lambda expression
我有一个数据class,我需要初始化一些List<String>
。我需要获取 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
}
如何转换为 lambda 表达式?
谢谢。
我认为您正在寻找 map
操作:
data.map { a -> a[key].asString }
或者您可以使用默认参数名称it
:
data.map { it[key].asString }
如果你使用map
函数,你可以把它写成一个单一的表达式...
private fun arrayToList(data: JsonArray, key: String): List<String> =
data.map { it[key].asString }
map
函数接受一种类型的参数并将其转换为另一种类型。我还利用了 Kotlin 中的默认元素名称称为 it
的事实,因此我不必像在 Java 中那样明确定义某些内容。所以这就是说“对于 data
中的每个对象,获取 key
值并对其调用 .asString
。这会自动转换为 List
.
我有一个数据class,我需要初始化一些List<String>
。我需要获取 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
}
如何转换为 lambda 表达式?
谢谢。
我认为您正在寻找 map
操作:
data.map { a -> a[key].asString }
或者您可以使用默认参数名称it
:
data.map { it[key].asString }
如果你使用map
函数,你可以把它写成一个单一的表达式...
private fun arrayToList(data: JsonArray, key: String): List<String> =
data.map { it[key].asString }
map
函数接受一种类型的参数并将其转换为另一种类型。我还利用了 Kotlin 中的默认元素名称称为 it
的事实,因此我不必像在 Java 中那样明确定义某些内容。所以这就是说“对于 data
中的每个对象,获取 key
值并对其调用 .asString
。这会自动转换为 List
.