我是Kotlin的新手。我有一个问题,不知道如何用Kotlin写:如果列表为null,我需要返回一个空列表。如果列表有一些元素,我需要转换这些元素,让列表包含新类型的元素。代码如下:list?:listof()但是转换代码放在哪里
nkkqxpd91#
对于不可空列表,转换列表中元素的一般方法是使用.map { ... }创建一个新列表,其中包含转换后的元素:
.map { ... }
val listWithConvertedElements = list.map { convert(it) }
(其中convert()只是一个示例,用于表示您自己的转换代码)。当你的列表可以为空时,你不能直接调用.map(),但是你可以使用安全的解引用操作符?.。如果list不为null,则调用map,否则直接返回null:
convert()
.map()
?.
map
val listWithConvertedElementsOrNull = list?.map { convert(it) }
将其与elvis运算符?:的(正确)使用相结合,可以得到以下结果:
?:
val listWithConvertedElementsOrEmpty = list?.map { convert(it) } ?: emptyList()
(emptyList()与不带参数的listOf()相同,但它更好地表达了意图)
emptyList()
listOf()
1条答案
按热度按时间nkkqxpd91#
对于不可空列表,转换列表中元素的一般方法是使用
.map { ... }
创建一个新列表,其中包含转换后的元素:(其中
convert()
只是一个示例,用于表示您自己的转换代码)。当你的列表可以为空时,你不能直接调用
.map()
,但是你可以使用安全的解引用操作符?.
。如果list不为null,则调用map
,否则直接返回null:将其与elvis运算符
?:
的(正确)使用相结合,可以得到以下结果:(
emptyList()
与不带参数的listOf()
相同,但它更好地表达了意图)