Классы Kotlin без фигурных скобок

Я заметил, что мы можем создавать классы в Kotlin без фигурных скобок, как показано ниже.

//Example classFile.kt
class Empty

class SecondEmpty

fun firstMethod() {

}

У меня вопрос, зачем нам такая функция? в какой ситуации мы можем использовать это?

В приведенном выше примере я написал метод с именем firstMethod(), как я могу вызвать его из других объектов?


person Zumry Mohamed    schedule 10.12.2017    source источник
comment
Связанный: stackoverflow.com/questions/47588670/   -  person BakaWaii    schedule 10.12.2017


Ответы (1)


Пустые классы обсуждались в Какова цель пустого класса в Котлин? уже.

Что касается вашего firstMethod: в Котлине у нас есть так называемые функции верхнего уровня. Они могут быть определены в любом файле без окружающего класса. Другим примером этого является main, который в большинстве случаев определяется на верхнем уровне.

Как вызывать функции верхнего уровня?

Вы можете просто импортировать функцию в другие файлы и вызывать их. Например, если firstMethod было определено в com/x/Example.kt (пакет com.x), вы можете импортировать com.x.firstMethod в другие файлы Kotlin и вызвать этот метод.

Для Java важно знать, что функции верхнего уровня компилируются в класс как static членов. Что касается примера выше, вы можете вызвать com.x.ExampleKt.firstMethod из Java.

person s1m0nw1    schedule 10.12.2017
comment
Как узнать, что firstMethod объявлено внутри Example.kt файла? - person ThanosFisherman; 21.03.2018