Kotlin Handledning
Kom igång med Kotlin
Sök…
Anmärkningar
Kotlin är ett statiskt typiskt objektorienterat programmeringsspråk utvecklat av JetBrains främst inriktat på JVM. Kotlin är utvecklad med målen att vara snabb att kompilera, bakåtkompatibel, mycket typ säker och 100% driftskompatibel med Java. Kotlin är också utvecklad med målet att tillhandahålla många av de funktioner som Java-utvecklare önskar. Kotlins standardkompilerare gör det möjligt att kompilera både i Java-bytekod för JVM och till JavaScript.
Sammansätter Kotlin
Kotlin har ett standard-IDE-plugin för Eclipse och IntelliJ. Kotlin kan också kompileras med Maven , med Ant och med Gradle eller genom kommandoraden .
Det är värt att notera i $ kotlinc Main.kt
kommer att mata ut en Java-klassfil, i detta fall MainKt.class
(Observera att Kt bifogas MainKt.class
). Men om man skulle köra $ java MainKt
med $ java MainKt
java att kasta följande undantag:
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
För att köra den resulterande klassfilen med Java måste man inkludera Kotlin-driftstidsburkfilen till den aktuella klassvägen.
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
versioner
Version | Utgivningsdatum |
---|---|
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 |
Hej världen
Alla Kotlin program startar vid main
Här är ett exempel på ett enkelt Kotlin "Hello World" -program:
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
Placera ovanstående kod i en fil med namnet Main.kt
(detta filnamn är helt godtyckligt)
Vid inriktning på JVM kommer funktionen att kompileras som en statisk metod i en klass med ett namn härledt från filnamnet. I exemplet ovan skulle huvudklassen att köra vara my.program.MainKt
.
Om du vill ändra namnet på klassen som innehåller toppnivåfunktioner för en viss fil ska du placera följande kommentar längst upp i filen ovanför paketet:
@file:JvmName("MyApp")
I det här exemplet skulle nu den huvudsakliga klassen vara my.program.MyApp
.
Se även:
- Paket nivå funktioner , inklusive
@JvmName
anteckning. - Mål för användningsplatser för kommentarer
Hej världen använder en objektdeklaration
Du kan alternativt använda en objektdeklaration som innehåller huvudfunktionen för ett Kotlin-program.
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
Klassnamnet som du kommer att köra är namnet på ditt objekt, i det här fallet är my.program.App
.
Fördelen med den här metoden jämfört med en toppnivåfunktion är att klassenamnet som ska köras är mer självklart, och alla andra funktioner du lägger till skopas in i klassen App
. Du har då också en singleton-instans av App
att lagra tillstånd och göra annat arbete.
Se även:
- Statiska metoder inklusive
@JvmStatic
kommentaren
Hej världen använder ett följeslagningsobjekt
I likhet med hjälp av ett objekt deklarationen, kan du definiera main
en Kotlin program med en Companion Object av en klass.
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
Klassnamnet som du kommer att köra är namnet på din klass, i detta fall är my.program.App
.
Fördelen med den här metoden jämfört med en toppnivåfunktion är att klassenamnet som ska köras är mer självklart, och alla andra funktioner du lägger till skopas in i klassen App
. Detta liknar exemplet med Object Declaration
, annat än att du har kontroll över att initiera några klasser för att göra ytterligare arbete.
En liten variation som gör att klassen gör själva "hej":
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
Se även:
- Statiska metoder inklusive @JvmStatic-kommentaren
Huvudmetoder med varargs
Alla dessa huvudmetodestilar kan också användas med vargar :
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
Kompilera och köra Kotlin-kod i kommandoraden
Som java tillhandahåller två olika kommandon för att kompilera och köra Java-kod. Samma som Kotlin ger dig också olika kommandon.
javac
att sammanställa java-filer. java
att köra java-filer.
Samma som kotlinc
att sammanställa kotlin-filer kotlin
att köra kotlin-filer.
Läser inmatning från kommandoraden
Argumenten som skickas från konsolen kan tas emot i Kotlin-programmet och det kan användas som input. Du kan skicka N (1 2 3 och så vidare) antal argument från kommandotolken.
Ett enkelt exempel på ett kommandoradsargument i Kotlin.
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;
}
Här anger du två nummer från kommandoraden för att hitta det maximala antalet. Utgång:
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
För !! Användare Kontrollera Null Safety .
Obs: Ovan exemplet kompilera och kör på Intellij.