我有一个如下所示的扩展函数
infix fun List<Int>.sumList(that: List<Int>) =
this.zip(that, Int::plus)
我现在试图使这个扩展函数泛化,以便它可以处理整数列表以及浮点和double.
listOf(1,2,3).sumList(listOf(10,20,30))
给了我[11,22,33]
下面是我使用泛型编写相同扩展函数的try
inline infix fun <reified T: Number> List<T>.sumListNew(that: List<T>): List<T> = when {
T is Double -> this.zip(that, Double::plus)
else -> this.zip(that, Int::plus)
}
然而,我在T处得到编译器错误,说类型参数不是表达式.