IntelliJ IDEA - Kotlin: 未解决的引用:eq方法。

12

我正在使用macOS Mojave 10.14.5上的IntelliJ IDEA 2019.1.2(Ultimate Edition),并且使用Kotlin(kotlinc-jvm 1.3.31)。

当我创建了一个Kotlin JVM项目并添加了一个名为“Nullability.kt”的Kotlin文件,并包含以下代码(具有main()方法的扩展函数):

fun List<Int>.allNonZero() = all { it > 0 }

fun main() {
    val list1 = listOf(1, 2, 3)
    list1.allNonZero() eq true
}

IntelliJ IDEA将"eq"标记为红色并显示:

Kotlin: Unresolved reference: eq
如何在IntelliJ IDEA中解决这个问题?

1
你为什么认为这个应该首先编译呢?这个 eq 方法应该从哪里来?你在哪里读到这样的方法存在? - JB Nizet
这是我正在学习的 Kotlin Coursera 课程的内容。 - PacificNW_Lover
1
据我所知,标准 Kotlin API 中没有 eq 函数。因此,它很可能是来自某个库的扩展函数。您需要将该库添加到类路径中并导入扩展函数。 - JB Nizet
也许它和Scala混淆了,而Scala确实有一个eq运算符?(它是身份运算符,类似于Kotlin中的===。) - gidds
1个回答

21

在 Coursera 课程中,Kotlin 有一个 Playground,其中的代码是隐藏的,但您可以通过点击 + 号来展开并查看它。

infix fun <T> T.eq(other: T) {
    if (this == other) println("OK")
    else println("Error: $this != $other")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接