Kotlin自定义平均值函数如何处理空列表的除零异常?
Kotlin自定义整数列表平均值函数(兼容空列表)
原代码在处理空列表时会触发除零异常,以下是修改后的实现,可优雅处理空列表并返回自定义默认值,且未使用预定义的平均值相关库函数:
基础实现(固定默认值)
fun getAverage(nums: List<Int>): Double { return if (nums.isEmpty()) { 0.0 // 空列表时返回的默认值,可按需修改 } else { nums.sum().toDouble() / nums.size } } // 示例调用 val numbers = listOf(1, 2, 3, 4, 5) val average = getAverage(numbers) println(average) // 输出 3.0 val emptyNumbers = emptyList<Int>() val emptyAverage = getAverage(emptyNumbers) println(emptyAverage) // 输出 0.0
进阶实现(可自定义默认值)
如果需要根据场景灵活指定空列表的返回值,可以把默认值设为函数参数:
fun getAverage(nums: List<Int>, defaultValue: Double = 0.0): Double { return if (nums.isEmpty()) { defaultValue } else { nums.sum().toDouble() / nums.size } } // 自定义默认值调用示例 val customEmptyAverage = getAverage(emptyList(), 1.0) println(customEmptyAverage) // 输出 1.0
核心逻辑说明
- 通过
isEmpty()判断列表是否为空,从根源避免除零异常 - 空列表分支直接返回预设默认值,非空分支执行原有的求和、转浮点、除法计算逻辑
- 完全自定义实现,未依赖Kotlin标准库中预定义的
average()等函数,方便后续按需调整计算规则
内容的提问来源于stack exchange,提问作者Dolev Mitz
相关产品推荐
相关产品推荐

