如何将代码段写入Kotlin

rryofs0p  于 2023-10-23  发布在  Kotlin
关注(0)|答案(1)|浏览(103)

我是Kotlin的新手。我有一个问题,不知道如何用Kotlin写:如果列表为null,我需要返回一个空列表。如果列表有一些元素,我需要转换这些元素,让列表包含新类型的元素。
代码如下:
list?:listof()
但是转换代码放在哪里

nkkqxpd9

nkkqxpd91#

对于不可空列表,转换列表中元素的一般方法是使用.map { ... }创建一个新列表,其中包含转换后的元素:

val listWithConvertedElements = list.map { convert(it) }

(其中convert()只是一个示例,用于表示您自己的转换代码)。
当你的列表可以为空时,你不能直接调用.map(),但是你可以使用安全的解引用操作符?.。如果list不为null,则调用map,否则直接返回null:

val listWithConvertedElementsOrNull = list?.map { convert(it) }

将其与elvis运算符?:的(正确)使用相结合,可以得到以下结果:

val listWithConvertedElementsOrEmpty = list?.map { convert(it) } ?: emptyList()

emptyList()与不带参数的listOf()相同,但它更好地表达了意图)

相关问题