代码之家  ›  专栏  ›  技术社区  ›  PacificNW_Lover

intellij-idea-kotlin:未解析引用:eq方法

  •  1
  • PacificNW_Lover  · 技术社区  · 5 年前

    我在MacOS Mojave 10.14.5上使用Intellij IDEA 2019.1.2(终极版)和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理念以红色突出显示“EQ”,并指出:

    Kotlin: Unresolved reference: eq
    

    如何从intellij思想中解决这个问题?

    0 回复  |  直到 5 年前
        1
  •  0
  •   sohaieb azaiez    5 年前

    错误消息很清楚,代码中没有对eq方法的引用,并且Kotlin在其API中不包含任何具有此名称的方法。

        2
  •  0
  •   PacificNW_Lover    5 年前

    找到了它,在coursera课程中,Kotlin有一个隐藏代码的操场,但是你可以通过点击+符号来扩展和查看它。

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