为什么不sumBy(选择器)返回长?

sumBy(selector)返回Int

sumByDouble(selector)返回Double

为什么不总算返回Long? 有没有解决方法?

这是Kotlin团队做出的决定。 由于在Java中不可能有返回类型重载, sumBy*必须根据返回类型具有不同的名称。

虽然添加自己的sumByLong很容易:

 public inline fun <T> Iterable<T>.sumByLong(selector: (T) -> Long): Long { var sum: Long = 0L for (element in this) { sum += selector(element) } return sum }