面试题答案
一键面试实现思路
- 定义一个泛型函数,接收一个泛型列表作为参数。
- 使用
when
表达式进行模式匹配:- 检查列表是否为空,为空则返回特定字符串。
- 检查列表是否只有一个元素,且该元素是数字类型(通过
is
关键字判断),如果是则返回该数字的平方。 - 检查列表元素个数是否大于1,且所有元素都是字符串类型(通过
all
函数判断),如果是则将这些字符串连接起来返回。
完整代码
fun <T> processList(list: List<T>): Any {
return when {
list.isEmpty() -> "列表为空"
list.size == 1 && list.first() is Number -> (list.first() as Number).toDouble().pow(2)
list.size > 1 && list.all { it is String } -> list.joinToString("")
else -> "不满足任何条件"
}
}