面试题答案
一键面试定义扩展函数计算List平方和
在Kotlin中,可以如下定义扩展函数来计算List
的平方和:
fun List<Int>.squareSum(): Int {
return this.sumOf { it * it }
}
在上述代码中,List<Int>
表示这个扩展函数是作用于Int
类型的List
。squareSum
是扩展函数的名称,在函数体中,使用sumOf
函数对列表中的每个元素进行平方运算并求和。
扩展函数提升代码简洁性与表达力的原因
- 简洁性:通过定义扩展函数,无需创建额外的工具类或者在每个使用的地方都编写重复的逻辑。例如,在计算平方和时,直接在
List
对象上调用squareSum
函数即可,而不需要编写循环等复杂的代码结构,使代码行数减少。 - 表达力:扩展函数可以根据业务需求,为已有的类添加有意义的方法。从代码阅读者的角度,看到
list.squareSum()
,能很直观地明白这段代码是在计算列表元素的平方和,增强了代码的可读性和可维护性。相比在多处编写相似的循环计算逻辑,扩展函数将逻辑封装起来,使代码更加清晰,提高了代码的表达能力。