我是 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
}
答案 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")