MST

星途 面试题库

面试题:Kotlin空安全机制在函数参数与返回值中的应用

定义一个函数,该函数接收一个可空的整数列表作为参数,在函数内部需要对列表中的每个元素进行平方运算,并且要确保在列表为`null`或者列表中的元素为`null`时,函数能以合理的方式处理而不抛出空指针异常,最后返回一个非空的整数列表。请写出完整的Kotlin函数代码,并详细说明在参数处理、内部逻辑以及返回值方面是如何运用空安全机制的。
28.0万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

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