什么';Kotlin 1.4中sumOf()和sumBy()的区别是什么?

什么';Kotlin 1.4中sumOf()和sumBy()的区别是什么?,kotlin,collections,Kotlin,Collections,Kotlin 1.4中新的sumOf()函数与sumBy()或sumByDouble()函数有何不同?如下所述: sumOf允许您以相同的方式处理不同类型的总和。 它产生Int,Long类型的总和, Double。。。[取决于给定lambda的返回类型] TLDR:没有区别,最终sumBy/sumByDouble可能会被弃用,取而代之的是单一的sumOf sumOf操作对选择器函数返回的不同数字类型具有重载。以前使用旧的类型推断工具是不可能的,所以为了处理不同的数字类型,它需要具有不同名称的函数

Kotlin 1.4中新的
sumOf()
函数与
sumBy()
sumByDouble()
函数有何不同?

如下所述:

sumOf
允许您以相同的方式处理不同类型的总和。 它产生
Int
Long
类型的总和,
Double
。。。[取决于给定lambda的返回类型]


TLDR:没有区别,最终
sumBy
/
sumByDouble
可能会被弃用,取而代之的是单一的
sumOf

sumOf
操作对选择器函数返回的不同数字类型具有重载。以前使用旧的类型推断工具是不可能的,所以为了处理不同的数字类型,它需要具有不同名称的函数:
sumBy
求整数和,
sumByDouble
求双精度和,等等

当新的推理最终通过选择器lambda return type的重载解析得到实验支持时,我们决定不重载现有的
sumBy
函数,而是引入一个新的操作
sumOf
。这样一来,它破坏某些东西的可能性更小,并且在命名时与新操作
list.minOf/maxOf{selector}
更加一致