Kotlin zeichnet sich durch eine klare und prägnante Syntax aus, die das Schreiben von robustem und wartbarem Code erleichtert. Dieser Artikel bietet einen Überblick über die grundlegende Syntax und Struktur von Kotlin-Programmen, einschließlich der Deklaration von Variablen, Kontrollstrukturen, Funktionen und Klassen.
Diese nachfolgende Übersicht vermittelt in einem kurzen Roundtrip die grundlegenden Elemente der Kotlin-Syntax und -Struktur.
Unveränderliche Variablen (val
):
Diese Variablen sind äquivalent zu final Variablen in Java. Einmal
zugewiesen, kann ihr Wert nicht geändert werden.
val name: String = "Kotlin"
Veränderliche Variablen (var
): Der
Wert dieser Variablen kann im Laufe der Zeit geändert werden.
var counter: Int = 0
Int
, Double
, Float
,
Boolean
, Char
und String
.arrayOf()
erzeugt und können unterschiedliche Datentypen
speichern.Bedingte Anweisungen (if
,
when
): if
ist eine
Standard-Bedingung, während when
eine erweiterte Form der
Switch-Anweisung ist.
if (condition) {
// Codeblock
}
when (variable) {
-> // Aktion 1
value1 -> // Aktion 2
value2 else -> // Standardaktion
}
Schleifen (for
, while
,
do-while
): Schleifen in Kotlin werden für
iterierende Operationen verwendet.
for (item in collection) {
// Codeblock
}
Funktionsdeklaration: Funktionen in Kotlin
werden mit dem Schlüsselwort fun
definiert.
fun add(a: Int, b: Int): Int {
return a + b
}
Standard- und benannte Parameter: Funktionen können Standardwerte für Parameter haben, und beim Aufrufen können benannte Parameter verwendet werden.
Klassendeklaration: Klassen in Kotlin werden mit
dem Schlüsselwort class
deklariert.
class Person(val name: String, var age: Int)
Konstruktoren: Kotlin unterstützt primäre und sekundäre Konstruktoren für Klassen.
Datenklassen (data class
):
Vereinfachen die Erstellung von Klassen, die Daten halten.
Try-Catch-Finally: Kotlin verwendet try-catch Blöcke zur Ausnahmebehandlung, ähnlich wie Java.
try {
// Code, der eine Ausnahme werfen könnte
} catch (e: Exception) {
// Ausnahmebehandlung
} finally {
// Abschließender Codeblock
}
Sichere Aufrufe (?.
): Vermeiden von
NullPointer-Ausnahmen durch sicheres Aufrufen von Methoden auf Objekten,
die null sein könnten.
val text: String? = null
val length: Int? = text?.length
// length ist null, wenn text null ist
-Elvis-Operator (?:
): Ermöglicht
einen Standardwert, wenn ein Ausdruck null ergibt.
val name: String? = null
val safeName: String = name ?: "Unbekannt"
// safeName ist "Unbekannt", wenn name null ist
Lambda-Ausdrücke: Anonyme Funktionen, die zur Implementierung funktionaler Programmierkonzepte verwendet werden.
val greeting = { name: String -> "Hallo, $name!" }
(greeting("Welt")) println
Higher-Order Functions: Funktionen, die andere Funktionen als Parameter akzeptieren oder zurückgeben.
fun calculate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
val sumResult = calculate(5, 3) { x, y -> x + y }
(sumResult) // Ausgabe: 8
println
val multiplyResult = calculate(5, 3) { x, y -> x * y }
(multiplyResult) // Ausgabe: 15 println
isCodingFun
vom Typ Boolean
und weise ihr den Wert true
zu.learningKotlin
vom Typ String
und initialisiere sie mit dem Wert
“Spannend”.numbers
mit den Werten 1, 2, 3, 4
und 5.pi
vom Typ Double
und weise ihr den Wert 3.14159 zu.if
-Anweisung, um zu überprüfen, ob eine
Zahl x
größer als 10 ist. Gib “x ist größer als 10” aus,
wenn dies zutrifft.when
-Anweisung mit einer Variable
day
vom Typ String
. Gib für “Montag” die
Ausgabe “Start in die Woche” und für “Freitag” “Fast Wochenende” aus.
Verwende else
für alle anderen Tage mit der Ausgabe “Ein
normaler Tag”.greet
, die einen
String
-Parameter name
akzeptiert und “Hallo,
name
!” ausgibt.maxOf
, die zwei
Int
-Parameter a
und b
akzeptiert
und den größeren der beiden Werte zurückgibt.Book
mit den Eigenschaften
title
(String) und author
(String).try-catch
-Block, der eine Division durch
Null versucht und eine ArithmeticException
abfängt. Gib im
catch
-Block “Division durch Null ist nicht erlaubt”
aus.nullableName
und verwende den sicheren Aufruf, um ihre Länge zu erhalten. Gib “Länge
ist null” aus, wenn sie null ist.nullableAge
vom Typ Int?
zu liefern.
Gib diesen Wert aus.square
, der einen
Int-Wert akzeptiert und sein Quadrat zurückgibt.calculate
-Funktion aus dem Artikel, um das
Produkt zweier Zahlen mit einem Lambda-Ausdruck zu berechnen.val isCodingFun: Boolean = true
var learningKotlin: String = "Spannend"
val numbers = arrayOf(1, 2, 3, 4, 5)
val pi: Double = 3.14159
val x = 11
if (x > 10) {
("x ist größer als 10")
println}
val day = "Montag"
when (day) {
"Montag" -> println("Start in die Woche")
"Freitag" -> println("Fast Wochenende")
else -> println("Ein normaler Tag")
}
fun greet(name: String) {
("Hallo, $name!")
println}
fun maxOf(a: Int, b: Int): Int {
return if (a > b) a else b
}
data class Book(val title: String, val author: String)
val myBook = Book("Mein erstes Kotlin-Buch", "Max Mustermann")
try {
val result = 100 / 0
} catch (e: ArithmeticException) {
("Division durch Null ist nicht erlaubt")
println}
var nullableName: String? = null
val nameLength = nullableName?.length ?: "Länge ist null"
(nameLength) println
var nullableAge: Int? = null
val age = nullableAge ?: "Standardalter"
(age) println
square
val square: (Int) -> Int = { number -> number * number }
(square(4)) // Gibt 16 aus println
fun calculate(a: Int, b: Int, operation: (Int, Int) -> Int): Int = operation(a, b)
val product = calculate(4, 5) { x, y -> x * y }
(product) // Gibt 20 aus println