Kotlin ist eine statisch typisierte Programmiersprache, was bedeutet, dass alle Variablen und Ausdrücke während der Kompilierung (Übersetzung des geschriebenen Quellcodes in einen ausführbaren und für den Computer verständlichen Maschinencode) auf ihre Typen überprüft werden. Wenn man versucht, einem Datentyp einen Wert zuzuweisen, der nicht mit dem erwarteten Typ übereinstimmt, tritt ein Fehler auf und die Kompilierung des Programms wird abgebrochen. Dies hat den Vorteil, dass bestimmte Fehler bereits in einer frühen Phase der Übersetzungszeit identifiziert werden können. Daher ist es wichtig, den Umgang mit den Datentypen in Kotlin von Anfang an zu erlernen, um sicherzustellen, dass unsere Variablen und Ausdrücke den richtigen Typen haben und unser Code korrekt funktioniert.
Alle Bestandteile eines Programms in Kotlin, einschließlich Variablen, repräsentieren Objekte mit einem bestimmten Datentyp. Der Datentyp bestimmt, welchen Speicherplatzbedarf ein Objekt dieses Typs hat und welche Operationen mit ihm durchgeführt werden können. Kotlin bietet verschiedene grundlegende Datentypen, wie zum Beispiel Zahlen, Zeichen, Zeichenketten, boolesche Werte und Arrays.
Jetzt schauen diese Datentypen näher an.
Ganzzahlige Datentypen
Der Byte-Datentyp wird verwendet, um ganze Zahlen im Bereich von -128 bis 127 zu speichern. Es nimmt 8 Bits (1 Byte) Speicherplatz ein.
Short: Der Short-Datentyp wird verwendet, um ganze Zahlen im Bereich von -32.768 bis 32.767 zu speichern. Es nimmt 16 Bits (2 Bytes) Speicherplatz ein.
Int: Der Int-Datentyp wird verwendet, um ganze Zahlen im Bereich von -2.147.483.648 bis 2.147.483.647 zu speichern. Es nimmt 32 Bits (4 Bytes) Speicherplatz ein.
Long: Der Long-Datentyp wird verwendet, um große ganze Zahlen im Bereich von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 zu speichern. Es nimmt 64 Bits (8 Bytes) Speicherplatz ein.
Ganzzahlige Datentypen ohne Vorzeichen
Ab der Version 1.3 von Kotlin wurde die Unterstützung von ganzzahligen Datentypen ohne Vorzeichen hinzugefügt. Im Vergleich zu ganzzahligen Datentypen mit Vorzeichen bieten sie mehrere Vorteile wie einen größeren Wertebereich, höhere Effizienz und verbesserte Code-Lesbarkeit. Außerdem sind sie wichtig, um eine korrekte Kommunikation mit anderen Systemen zu gewährleisten.
UByte: speichert ganze Zahlen im Bereich von 0 bis 255 und nimmt 1 Byte Speicherplatz ein.
UShort: speichert ganze Zahlen im Bereich von 0 bis 65.535 und nimmt 2 Bytes Speicherplatz ein.
UInt: speichert ganze Zahlen im Bereich von 0 bis 4.294.967.295 und nimmt 4 Bytes Speicherplatz ein.
ULong: speichert ganze Zahlen im Bereich von 0 bis 18.446.744.073.709.551.615 und nimmt 8 Bytes Speicherplatz ein.
Gleitkommazahlen
Gleitkommazahlen sind Zahlen, die Nachkommastellen enthalten können. In Kotlin werden sie mit dem Datentyp Float oder Double deklariert.
Float speichert eine Gleitkommazahl im Bereich von -3.410^38 bis 3.410^38 und benötigt 4 Bytes. Eine Variable vom Typ Float erhält eine Zahlzuweisung, indem man das Suffix f oder F hinter der Zahl angibt.
Double speichert eine Gleitkommazahl im Bereich von ±5.010^-324 bis ±1.710^308 und benötigt 8 Bytes.
Der Datentyp Double unterstützt ebenfalls die exponentielle Schreibweise:
Boolean
Boolean ist ein logischer Datentyp, der in Kotlin zwei mögliche Werte annehmen kann: true (wahr) oder false (falsch). Er wird verwendet, um eine Aussage oder Bedingung zu repräsentieren, die entweder wahr oder falsch ist.
Char
Char ist ein Datentyp in Kotlin, der einzelne Zeichen repräsentiert. Jeder Char-Wert ist ein Unicode-Zeichen und wird von einfachen Anführungszeichen (“) umschlossen. Ein Char-Wert benötigt 2 Bytes Speicherplatz und kann alle möglichen Unicode-Zeichen darstellen.
Der Datentyp Char kann auch spezielle Escape-Sequenzen darstellen, die auf eine besondere Weise interpretiert werden:
- \n: Zeilenumbruch
- \r: Wagenrücklauf (carriage return)
- \‘: Einzelnes Anführungszeichen
- \t: Tabulator
- \“: Doppeltes Anführungszeichen
- \\: Umgedrehter Schrägstrich (Backslash)
String
Der Datentyp String in Kotlin repräsentiert eine Zeichenkette von Zeichen, die als Text interpretiert werden kann. Eine Zeichenkette wird in Kotlin in doppelte oder dreifache Anführungszeichen (““…”” oder “““…”””) eingeschlossen.
Der Datentyp String erlaubt es, Zeichenketten mit speziellen Zeichen oder bereits oben erwähnten Escape-Sequenzen zu erstellen. Wenn man beispielsweise einen Zeilenumbruch in den Text einfügen möchte, kann man dafür die Escape-Sequenz \n verwenden.
Um das Erstellen von mehrzeiligen Texten zu erleichtern, können auch dreifache Anführungszeichen verwendet werden.
String Templates
Mit Hilfe von String Templates können Variablenwerte auf einfache Weise in eine Zeichenkette eingefügt werden. Hierfür wird das Dollarzeichen $ verwendet, um auf den Variablenwert zuzugreifen und ihn in die Zeichenkette einzufügen.
In diesem Beispiel werden die Werte der Variablen $websiteName, $launchYear und $numberOfArticles in die Zeichenkette eingebettet. Wie man sieht Variablen haben Datentypen String und Int.
Typinferenz (Typableitung)
Mithilfe der Typinferenz kann in Kotlin der Typ einer Variable anhand der Daten, mit denen sie initialisiert wird, automatisch ermittelt werden. Aus diesem Grund kann bei der Initialisierung der Variablen der Typ weggelassen werden.
WICHTIG: Es ist nicht erlaubt, eine Variable zuerst ohne Typendeklaration zu erstellen und ihr später einen Wert zuzuweisen.
Statische Typisierung und Datentyp Any
Der Datentyp einer Variablen gibt an, welche Werte dieser Variablen zugewiesen werden können. Ein Versuch, einen anderen Datentyp zuzuweisen, führt zu einem Fehler.
In Kotlin gibt es auch den besonderen Datentyp Any, der es ermöglicht, jeder Variablen jeden beliebigen Wert zuzuweisen.
In Kotlin gibt es noch weitere Datentypen wie Arrays, Listen, Maps, Klassen und mehr. Diese werden im späteren Verlauf des Tutorials ausführlich behandelt. Und an dieser Stelle bieten wir dir erstmal eine Auswahl an Übungen, um die Inhalte dieses Kapitels zu festigen.