Kotlin
Grundlagen von Kotlin
Suche…
Einführung
Dieses Thema behandelt die Grundlagen von Kotlin für Anfänger.
Bemerkungen
- Die Kotlin-Datei hat die Erweiterung .kt.
- Alle Klassen in Kotlin haben eine gemeinsame Oberklasse Any, das ist ein Standard-Super für eine Klasse ohne Supertypen (ähnlich wie Object in Java).
- Variablen können als val (unveränderlich, einmalig zuweisen) oder var (variabler Wert können geändert werden).
- Am Ende der Anweisung wird kein Semikolon benötigt.
- Wenn eine Funktion keinen nützlichen Wert zurückgibt, lautet der Rückgabetyp Unit.It ist ebenfalls optional. 6.Referenzielle Gleichheit wird durch die Operation === geprüft. a === b wird dann als wahr ausgewertet, wenn a und b auf dasselbe Objekt zeigen.
Grundlegende Beispiele
1.Die Deklaration der Rückgabetypen ist für Funktionen optional. Die folgenden Codes sind gleichwertig.
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
}
fun printHello(name: String?) {
...
}
2.Einzelausdruck-Funktionen: Wenn eine Funktion einen einzelnen Ausdruck zurückgibt, können die geschweiften Klammern weggelassen werden und der Körper wird nach = Symbol angegeben
fun double(x: Int): Int = x * 2
Das explizite Deklarieren des Rückgabetyps ist optional, wenn dies vom Compiler abgeleitet werden kann
fun double(x: Int) = x * 2
3. String-Interpolation: Die Verwendung von String-Werten ist einfach.
In java:
int num=10
String s = "i =" + i;
In Kotlin
val num = 10
val s = "i = $num"
4. In Kotlin unterscheidet das Typsystem zwischen Referenzen, die null (nullfähige Referenzen) enthalten können, und solchen, die dies nicht können (nicht-null-Referenzen). Beispielsweise kann eine reguläre Variable vom Typ String nicht null enthalten:
var a: String = "abc"
a = null // compilation error
Um Nullen zuzulassen, können wir eine Variable als nullbaren String, geschriebener String, deklarieren:
var b: String? = "abc"
b = null // ok
5.In Kotlin prüft == tatsächlich die Gleichheit der Werte. Nach der Konvention wird ein Ausdruck wie a == b in übersetzt
a?.equals(b) ?: (b === null)