面试题答案
一键面试思路
- 遍历
List<Any?>
列表,使用智能类型转换筛选出其中的Int
类型元素。 - 计算这些
Int
类型元素的和。 - 使用Kotlin的契约系统确保这个和大于100。
代码实现
import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.contract
@ExperimentalContracts
fun sumGreaterThan100(list: List<Any?>): Boolean {
contract {
returns(true) implies (calculateSum(list) > 100)
}
return calculateSum(list) > 100
}
private fun calculateSum(list: List<Any?>): Int {
return list.filterIsInstance<Int>().sum()
}