如何从类的函数中调用不属于类的函数?

时间:2020-10-12 11:52:28

标签: java function class kotlin

我是 Kotlin 的新手(对Java有一定的经验)。在 java 中,每个函数(方法)都属于类(静态函数或实例函数)。在 Java中 不可能在类外编写函数。在 kotlin 中,我看到了可能。我不明白如何从类函数中调用函数(不属于类范围)。 有人可以向我解释。 代码示例: 狼类:

  class Wolf()
{
    var image = "wolf.jpg"
    var food = "meat"
    val habitat = "forests"

    fun makeNoise() {
        println("Hooooow!")
        addNumbers(5, 6)

    }
}

不属于类的方法:

   fun addNumbers (a:Int, b:Int): Int
 {
     return a+b
 }

1 个答案:

答案 0 :(得分:0)

来自kotlin docs

在Kotlin中,可以在文件的顶层声明函数,这意味着您无需创建类来保存函数,而您需要使用Java,C#或Scala等语言来执行此操作。除了顶级函数外,还可以将Kotlin函数声明为局部函数,作为成员函数和扩展函数。

如果您想知道如何在JVM字节码中实现此功能,可以使用IntelliJ中的“工具-> Kotlin->显示Kotlin字节码”,然后使用“反编译”功能。

您将看到,如果将addNumbers放在Wolf.kt文件中,那么kotlin编译器将生成等效于以下内容的字节码:

public final class WolfKt {
   public static final int addNumbers(int a, int b) {
      return a + b;
   }
}

You can control the name of the class with @file:JvmName("WolfFunctions")