sumBy(selector) returns Int

sumByDouble(selector) returns Double

萨姆比为什么不早回来?有解决办法吗?

推荐答案

这是Kotlin 团队做出的决定.由于是not possible to have return type overloads in JavasumBy*必须根据返回类型有不同的名称.

不过,你可以很容易地添加自己的sumByLong个:

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

Kotlin相关问答推荐

当通过firstOrders访问时,存储在伴随对象中的对象列表具有空值

如何在Kotlin中模拟www.example.com()?

在调用父构造函数之前重写类属性

如何使用Kotlinx.LocalDateTime获取重置时间为00:00的当前日期?

我可以更改方法中泛型类的类型参数边界吗?

如何将jooq multiset的结果映射到Hashmap(Java Map)?

在 APK META-INF/library_release.kotlin_module 中复制的重复文件

Kotlin 方法重载

如何在 Kotlin 文件中的 Android Studio 中控制何时将 Imports 替换为通配符

Android Kotlin StringRes 数量String

哪里可以找到aapt2日志(log)?

如何将命令行参数传递给Gradle Kotlin DSL

main函数和常规函数有什么区别?

如何从协程范围返回值

Kotlin:相互递归函数的尾部递归

在 Kotlin 函数上使用 Mokito anyObject() 时,指定为非 null 的参数为 null

在Kotlin中将列表转换为对的惯用方法

使用 Moshi/Retrofit2 访问深度嵌套的 JSON 数组

我应该在哪里调用 MobileAds.initialize()?

Kotlin - 为什么我会得到 KotlinNullPointerException