Kotlin учебник
Начало работы с Kotlin
Поиск…
замечания
Kotlin - это статически типизированный объектно-ориентированный язык программирования, разработанный JetBrains, ориентированный прежде всего на JVM. Kotlin разработан с целями быстрого компиляции, обратной совместимости, безопасного типа и 100% совместимости с Java. Kotlin также разработан с целью предоставления многих функций, которые хотят разработчики Java. Стандартный компилятор Kotlin позволяет скомпилировать его как в байт-код Java для JVM, так и в JavaScript.
Компиляция Котлина
У Kotlin есть стандартный плагин IDE для Eclipse и IntelliJ. Kotlin также может быть скомпилирован с использованием Maven , используя Ant , и используя Gradle или через командную строку .
Стоит отметить, что в $ kotlinc Main.kt
выведет файл класса java, в данном случае MainKt.class
(обратите внимание, что Kt добавлено к имени класса). Однако, если кто-то должен был запускать файл класса с помощью $ java MainKt
java выдаст следующее исключение:
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Чтобы запустить результирующий файл класса с помощью Java, необходимо включить файл jar-файла времени выполнения Kotlin в текущий путь класса.
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
Версии
Версия | Дата выхода |
---|---|
1.0.0 | 2016-02-15 |
1.0.1 | 2016-03-16 |
1.0.2 | 2016-05-13 |
1.0.3 | 2016-06-30 |
1.0.4 | 2016-09-22 |
1.0.5 | 2016-11-08 |
1.0.6 | 2016-12-27 |
1.1.0 | 2017-03-01 |
1.1.1 | 2017-03-14 |
1.1.2 | 2017-04-25 |
1.1.3 | 2017-06-23 |
Привет, мир
Все программы Kotlin начинаются с main
функции. Вот пример простой программы Kotlin «Hello World»:
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
Поместите вышеуказанный код в файл с именем Main.kt
(это имя файла полностью произвольно)
При ориентации на JVM функция будет скомпилирована как статический метод в классе с именем, полученным из имени файла. В приведенном выше примере основным классом для запуска будет my.program.MainKt
.
Чтобы изменить имя класса, содержащего функции верхнего уровня для определенного файла, поместите следующую аннотацию в верхней части файла над оператором пакета:
@file:JvmName("MyApp")
В этом примере основной класс для запуска теперь будет my.program.MyApp
.
Смотрите также:
- Функции уровня пакета, включая аннотацию
@JvmName
. - Цели использования целевых объектов аннотации
Привет, мир, используя декларацию объекта
Вы также можете использовать декларацию объекта, которая содержит основную функцию для программы Kotlin.
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
Имя класса, которое вы запустите, - это имя вашего объекта, в этом случае my.program.App
.
Преимущество этого метода над функцией верхнего уровня заключается в том, что имя класса для запуска более самоочевидно, а любые другие функции, которые вы добавляете, попадают в класс App
. У вас также есть экземпляр Singleton App
для хранения состояния и выполнения другой работы.
Смотрите также:
- Статические методы, включая аннотацию
@JvmStatic
Hello World, используя объект Companion
Подобно использованию Object Object, вы можете определить main
функцию программы Kotlin, используя объект Companion класса.
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
Имя класса, которое вы запустите, - это имя вашего класса, в этом случае my.program.App
.
Преимущество этого метода над функцией верхнего уровня заключается в том, что имя класса для запуска более самоочевидно, а любые другие функции, которые вы добавляете, попадают в класс App
. Это похоже на пример Object Declaration
, кроме того, что вы контролируете создание экземпляров любых классов для дальнейшей работы.
Небольшое отклонение, которое создает класс для действительного «привет»:
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
Смотрите также:
- Статические методы, включая аннотацию @JvmStatic
Основные методы с использованием varargs
Все эти основные стили методов также могут использоваться с varargs :
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
Компилировать и запускать код Котлина в командной строке
Поскольку java предоставляет две разные команды для компиляции и запуска кода Java. То же, что и Котлин, также предоставляет вам разные команды.
javac
для компиляции java-файлов. java
для запуска java-файлов.
То же, что kotlinc
для компиляции kotlin файлов kotlin
для запуска kotlin файлов.
Чтение ввода из командной строки
Аргументы, переданные с консоли, могут быть получены в программе Kotlin и могут использоваться как входные данные. Вы можете передать N (1 2 3 и так далее) количество аргументов из командной строки.
Простой пример аргумента командной строки в Котлине.
fun main(args: Array<String>) {
println("Enter Two number")
var (a, b) = readLine()!!.split(' ') // !! this operator use for NPE(NullPointerException).
println("Max number is : ${maxNum(a.toInt(), b.toInt())}")
}
fun maxNum(a: Int, b: Int): Int {
var max = if (a > b) {
println("The value of a is $a");
a
} else {
println("The value of b is $b")
b
}
return max;
}
Здесь введите два числа из командной строки, чтобы найти максимальное число. Выход :
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
За !! Оператор Пожалуйста, проверьте Null Safety .
Примечание: выше пример компиляции и запуска на Intellij.