为什么不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 }