2.9 KiB
title, description, tags
| title | description | tags | ||
|---|---|---|---|---|
| Hello World! | Первая программа на Kotlin, функция main и запуск через kotlinc |
|
fun main() {
println("Hello World")
}
Файл Hello.kt. Имя файла не связано с содержимым - можно назвать как угодно.
fun- объявление функцииmain- точка входа, может быть без параметровprintln- функция из стандартной библиотеки, не метод класса- Точки с запятой не нужны
Точка входа
Два допустимых варианта:
fun main() { } // обычно используют этот
fun main(args: Array<String>) { } // если нужны аргументы командной строки
Функция main должна быть на верхнем уровне файла (top-level), внутри класса её быть не может.
Запуск
kotlinc Hello.kt -include-runtime -d hello.jar
java -jar hello.jar
Или через скриптовый режим, без создания jar:
kotlin Hello.kt
Подробнее: kotlinc
[!info] Отличия от Java В Java
mainобязан лежать внутри класса, бытьpublic static voidи приниматьString[], а имя файла должно совпадать с именем публичного класса (Hello World! в Java). В Kotlin всё это не требуется: функции живут прямо в файле.На уровне байт-кода класс всё равно появляется - компилятор создаёт
HelloKtс методомpublic static void main(String[]). Поэтому JVM запускает Kotlin-код без каких-либо адаптеров. Подробнее: Kotlin в байт-коде
[!warning] Подводные камни
fun Main()илиfun start()скомпилируется, но JVM точку входа не найдёт - имя строгоmain- Если в файле есть
package, запускать надо с полным именем:java -cp . com.example.HelloKt- Две функции
main()в одном пакете в разных файлах - это нормально, классы-обёртки будут разными (HelloKt,AppKt)
Далее: Типы данных