Kotlin - 伴生对象的乐趣是做什么的?

Kotlin - What does companion object fun do?

在 Kotlin 中声明一个“static”函数是使用:

companion object {
    fun classFoo() {
        //do something
    }
}

然而我编码错误

companion object fun classFoo() {
     //do something
}

如果只需要一个静态函数,希望代码也能做到这一点。

编译器对此没有争论,而且它似乎是有效的,因为编译器需要 fun 名称和参数。但是我从来没有找到如何从其他 class.

调用该函数

companion object fun 的这种形式有什么作用?没有相关文档。

class Test {
    companion object fun classFoo() {
        //do something
    }
}

等同于

class Test {
    companion object // Add "{ }" to make it explicit that the object body is empty

    fun classFoo() {
        //do something
    }
}

即class 带有一个空的伴随对象(这是有效的语法)和一个普通的成员函数,可以用通常的方式调用:

Test().classFoo()