Array上的函数average()不起作用

时间:2017-06-09 14:12:51

标签: android kotlin

我决定在Kotlin的项目中写第一堂课。

我在doc中看到数组上有平均函数,可迭代http://apimirror.com/kotlin/api/latest/jvm/stdlib/kotlin.collections/-iterable/index

所以我写了这样的代码:

val numbers: IntArray = intArrayOf(11, 20, 30, 40, 50)
val average: Float = numbers.average()

它适用于try.kotlinlang.org,但在Android Studio中,我得到:

  

未解决的参考:平均值

3 个答案:

答案 0 :(得分:2)

您可能错过了build.gradle文件对Kotlin标准库的依赖:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    ...
}

如果您尚未配置项目,也可以转到Tools -> Kotlin -> Configure Kotlin in Project

您还可以查看有关如何使用AndroidGradle设置Kotlin的官方文档。

答案 1 :(得分:2)

根据您链接的文档,该函数返回Double,而不是Float。我在IntelliJ中得到了相关的投诉。

请改为尝试:

val numbers: IntArray = intArrayOf(11, 20, 30, 40, 50)
val average: Double = numbers.average()

完全不考虑类型:

val numbers = intArrayOf(11, 20, 30, 40, 50)
val average = numbers.average()

答案 2 :(得分:0)

只看一下average()函数here的返回类型,它返回Double not Float所以请改用Double。我们在Kotlin中使用Double而不是Float。