面试题答案
一键面试fun squareList(numbers: List<Int?>?): List<Int> {
return numbers.orEmpty().mapNotNull { it?.let { it * it } }
}
- 参数处理:函数参数
numbers
是一个可空的整数列表,通过orEmpty()
函数,确保在numbers
为null
时,使用一个空列表进行后续操作,避免空指针异常。 - 内部逻辑:使用
mapNotNull
函数,该函数会过滤掉null
值,并且对非null
值执行传入的操作。it?.let { it * it }
表示如果列表元素it
不为null
,则进行平方运算,否则跳过该元素。 - 返回值:返回值类型为
List<Int>
,即非空的整数列表。通过mapNotNull
过滤掉了null
值,确保返回的列表中不会包含null
元素。