Kotlin Samouczek
Rozpoczęcie pracy z Kotlin
Szukaj…
Uwagi
Kotlin to statycznie zorientowany obiektowy język programowania opracowany przez JetBrains ukierunkowany przede wszystkim na JVM. Kotlin został opracowany z myślą o szybkiej kompilacji, kompatybilności wstecznej, bezpieczeństwie typu i 100% interoperacyjności z Javą. Kotlin został również opracowany w celu zapewnienia wielu funkcji pożądanych przez programistów Java. Standardowy kompilator Kotlin pozwala na kompilację zarówno do kodu bajtowego Java dla JVM, jak i JavaScript.
Kompilowanie Kotlina
Kotlin ma standardową wtyczkę IDE dla Eclipse i IntelliJ. Kotlin można również skompilować za pomocą Maven , Anta i Gradla lub za pomocą wiersza poleceń .
Warto zauważyć, że $ kotlinc Main.kt
wyświetli plik klasy Java, w tym przypadku MainKt.class
( MainKt.class
uwagę, że Kt dołączony do nazwy klasy). Jeśli jednak ktoś uruchomi plik klasy za pomocą $ java MainKt
Java wyrzuci następujący wyjątek:
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
Aby uruchomić wynikowy plik klasy za pomocą Javy, należy dołączyć plik jar środowiska wykonawczego Kotlin do bieżącej ścieżki klasy.
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
Wersje
Wersja | Data wydania |
---|---|
1.0.0 | 15.02.2016 |
1.0.1 | 16.03.2016 |
1.0.2 | 2016-05-13 |
1.0.3 | 30.06.2016 |
1.0.4 | 22.09.2016 |
1.0.5 | 08.11.2016 |
1.0.6 | 27.12.2016 |
1.1.0 | 01.03.2017 |
1.1.1 | 14.03.2017 |
1.1.2 | 2017-04-25 |
1.1.3 | 23.06.2017 |
Witaj świecie
Wszystkie programy Kotlin rozpoczynają się od main
funkcji. Oto przykład prostego programu „Hello World” firmy Kotlin:
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
Umieść powyższy kod w pliku o nazwie Main.kt
(ta nazwa pliku jest całkowicie dowolna)
Podczas celowania w JVM funkcja zostanie skompilowana jako metoda statyczna w klasie o nazwie pochodzącej od nazwy pliku. W powyższym przykładzie główną klasą do uruchomienia byłoby my.program.MainKt
.
Aby zmienić nazwę klasy zawierającej funkcje najwyższego poziomu dla określonego pliku, umieść następującą adnotację na górze pliku nad instrukcją pakietu:
@file:JvmName("MyApp")
W tym przykładzie główną klasą do uruchomienia będzie teraz my.program.MyApp
.
Zobacz też:
- Funkcje na poziomie pakietu, w tym adnotacja
@JvmName
. - Adnotacje do celów witryny użytkowania
Hello World za pomocą deklaracji obiektowej
Alternatywnie można użyć deklaracji obiektu, która zawiera główną funkcję programu Kotlin.
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
Nazwa klasy, którą uruchomisz, to nazwa twojego obiektu, w tym przypadku to my.program.App
.
Zaletą tej metody w porównaniu z funkcją najwyższego poziomu jest to, że uruchamiana nazwa klasy jest bardziej oczywista, a wszelkie inne dodane funkcje są uwzględniane w App
klasy. Następnie masz także singletonową App
do przechowywania stanu i wykonywania innych zadań.
Zobacz też:
- Metody statyczne, w tym adnotacja
@JvmStatic
Hello World za pomocą obiektu Companion
Podobnie jak przy użyciu Deklaracji obiektu, możesz zdefiniować main
funkcję programu Kotlin za pomocą obiektu Companion klasy.
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
Nazwa klasy, którą uruchomisz, to nazwa twojej klasy, w tym przypadku to my.program.App
.
Zaletą tej metody w porównaniu z funkcją najwyższego poziomu jest to, że uruchamiana nazwa klasy jest bardziej oczywista, a wszelkie inne dodane funkcje są uwzględniane w App
klasy. Jest to podobne do przykładu Object Declaration
, poza tym, że kontrolujesz tworzenie instancji klas w celu wykonania dalszej pracy.
Niewielka odmiana, która tworzy instancję klasy w celu wykonania rzeczywistego „cześć”:
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
Zobacz też:
- Metody statyczne, w tym adnotacja @JvmStatic
Główne metody wykorzystujące varargs
Wszystkie te główne style metod mogą być również używane z varargs :
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
Skompiluj i uruchom kod Kotlin w wierszu polecenia
Ponieważ java udostępnia dwie różne komendy do kompilowania i uruchamiania kodu Java. Tak samo jak Kotlin, udostępnia także różne polecenia.
javac
do kompilacji plików java. java
do uruchamiania plików java.
To samo co kotlinc
do kompilacji plików kotlin
do uruchamiania plików kotlin.
Odczytywanie danych wejściowych z wiersza poleceń
Argumenty przekazywane z konsoli mogą być odbierane w programie Kotlin i mogą być używane jako dane wejściowe. Możesz przekazać N (1 2 3 itd.) Liczby argumentów z wiersza polecenia.
Prosty przykład argumentu wiersza poleceń w Kotlinie.
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;
}
Tutaj wprowadź dwie liczby z wiersza poleceń, aby znaleźć maksymalną liczbę. Wynik :
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
Dla !! Operator Sprawdź Null Safety .
Uwaga: Powyższy przykład skompiluj i uruchom na Intellij.