Kotlin von Anfang an Variablen, Basistypen und Arrays

Kotlin ist eine moderne Programmiersprache, die Java-Bytecode kompiliert. Es ist kostenlos und Open Source und verspricht, die Kodierung für Android noch mehr Spaß zu machen.

Kotlin ist zu 100% mit Java kompatibel. Das heißt, es kann zusammen mit Java im selben Projekt verwendet werden. So können Sie Teile Ihres Java-Codes in Kotlin umwandeln und er wird nicht beschädigt. Darüber hinaus ist es prägnant, ausdrucksstark und verfügt über hervorragende Werkzeuge. Kotlin kann auf der Back-End-Seite (Server-Seite) verwendet werden, aber es wird gerade als Sprache für die Android-App-Entwicklung viel Aufmerksamkeit auf sich gezogen. Kotlin wird jetzt von Google als erstklassige Sprache für die Android-Entwicklung unterstützt, sodass die Popularität von Kotlin explodieren wird! 

In diesem ersten Tutorial der Kotlin From Scratch-Serie lernen Sie die Grundlagen der Sprache kennen: Kommentare, Variablen, einfache Typen, Arrays und Typinferenz. 

Voraussetzungen

Um mit mir zu folgen, benötigen Sie das Kotlin-Plugin für Android Studio. Alternativ können Sie den Online-Spielplatz oder die IntelliJ IDEA Community Edition verwenden. 

1. Variablen

In Kotlin verwenden val eine Konstante erklären oder var Schlüsselwörter, um eine Variable zu deklarieren. Sie können einen Typ angeben, z String oder Int nach dem Variablennamen. Im folgenden Beispiel haben wir eine Konstante deklariert Vorname vom Typ String mit dem val Stichwort.

val firstName: String = "Chike" 

Sie werden jedoch schnell feststellen, dass es in Kotlin oft möglich ist, den Typ in der Deklaration wegzulassen, und der Compiler beschwert sich nicht. 

val lastName = "Mgbemena" // wird immer noch kompiliert

Im obigen Code werden Sie feststellen, dass wir den Typ nicht explizit angegeben haben String. Der obige Code funktioniert weiterhin, da der Compiler den Typ mithilfe der Typeninferenz implizit abgeleitet hat. Wir kommen darauf zurück! 

Der Unterschied zwischen dem val und var Schlüsselwörter sind, dass das erstere unveränderlich oder schreibgeschützt ist (der Wert kann nicht geändert werden), während das erstere veränderbar ist (der Wert kann geändert werden).. 

val dateOfBirth = "29. März 1709" dateOfBirth = "25. Dezember 1600" // kann nicht geändert werden var car = "Toyota Matrix" car = "Mercedes-Maybach" // kann geändert werden

Beachten Sie das für eine mit der deklarierte Variable var Schlüsselwort, dessen Typ vom Compiler abgeleitet wird, das Zuweisen eines anderen Werts eines anderen Typs funktioniert nicht. Mit anderen Worten, der Wert der Variablen kann sich ändern, der Typ der Variablen jedoch nicht! Zum Beispiel:

var age = 12 age = "12 years old" // Fehler: Typenkonflikt

Es wird dringend empfohlen, dass Sie Ihre Variablen zunächst unveränderlich machen, indem Sie sie mit der deklarieren val Schlüsselwort, um nicht zu viele Zustände zu erhalten. Dies macht Ihren Code für Multithreading sicherer, da sichergestellt wird, dass Ihre Variablen nicht unerwartet von anderen Threads geändert werden können.

Eine andere Sache, die Sie über das wissen sollten val Schlüsselwort ist, dass Sie es nur mit einem Typ deklarieren und ihm später einen Wert zuweisen können. Sie können einen Wert jedoch nur einmal vergeben.

val carName: String carName = "Toyota Matrix" // wird kompiliert

In Java ist es möglich, mehrere Variablen desselben Typs in einer einzigen Zeile zu deklarieren. Dies funktioniert jedoch nicht in Kotlin. In Kotlin müssen alle Variablendeklarationen in ihren eigenen Zeilen stehen. 

val carName = "BMW", streetName = "Oke street" // das wird nicht kompiliert // das wird var carName = "BMW" var streetName = "Oke street"

2. Geben Sie Inferenz oder Abzug ein

Kotlin ist eine stark typisierte Sprache, die Typinferenz oder Deduktion unterstützt. Dies ist der Mechanismus, den der Compiler verwendet, um Typen aus dem Kontext herauszufinden. Java hat keinen Typinferenzmechanismus, was bedeutet, dass Sie den Typ jeder Funktion oder Variablen explizit deklarieren müssen. Typinferenz hilft, den Boilerplate-Code zu reduzieren, den Sie schreiben müssen. 

val country = "Nigeria" // Typ wird durch Compiler Val Code = 234 abgeleitet

Der obige Code würde kompilieren, obwohl wir den Typ für das variable Land nicht explizit angegeben haben. Der Compiler ist intelligent genug, um zu wissen, dass das Land vom Typ ist String, weil der Wert "Nigeria" eine Zeichenfolge ist.  

3. Grundtypen

In Java gibt es zwei Typen von Typprimitiven (z. B. int, long, boolean, Byte, char usw.) und Referenztypen (z. B. Array), String). Java verwendet Wrapper (wie java.lang.Integer) um primitive Typen wie Objekte zu benennen. In Kotlin gibt es keine solche Unterscheidung. Stattdessen sind alle Typen Objekte. 

Zahlen

Die in Kotlin verfügbaren Integer-Typen sind:

  • Lange-64 Bit
  • Int-32 bit
  • Kurz-16 bit
  • Byte-8 Bit

Die Gleitkommatypen sind: 

  • Doppelt-64 Bit
  • Schweben-32 bit
val myInt = 55 val myLong = 40 l val myFloat = 34,43F val myDouble = 45,78 val myHexadecimal = 0x0F wert myBinary = 0b010101

Sie können beobachten, dass wir eine erstellt haben Lange Literal durch Hinzufügen des Suffixes L, und für Schweben wir haben das Suffix hinzugefügt F oder f.  Zahlen können auch in hexadezimaler Schreibweise geschrieben werden 0x oder 0X Präfix und binär mit der 0b oder 0B Präfix. Beachten Sie, dass Kotlin in all diesen Fällen die Typeninferenz verwenden kann, um stattdessen den gewünschten Typ zu kennen.

val myLong = 19L val myLongAgain: Long = 40

Um eine Zahl von einem Typ in einen anderen zu konvertieren, müssen Sie die entsprechende Konvertierungsfunktion explizit aufrufen. Mit anderen Worten, es gibt keine implizite Konvertierung zwischen Nummernarten. 

val myNumber = 400 val myNumberAgain: Long = myNumber // löst Fehler aus: Typenkonflikt

Jeder Zahlentyp verfügt über Hilfsfunktionen, die von einem Zahlentyp in einen anderen konvertieren: toByte (), toInt (), zu lang(), schweben(), verdoppeln(), toChar (), zu kurz().

val myInt = 987 val myLong = myInt.toLong ()

Im obigen Code konvertieren wir von einer Ganzzahl in eine Long-Zahl. Mit der Methode können wir auch das Gegenteil tun toInt () auf der langen Variable. Beachten Sie, dass dadurch der Wert auf die kleinere Größe von a gekürzt wird Int Geben Sie ggf. den Typ ein. Seien Sie daher vorsichtig, wenn Sie von größeren in kleinere Typen konvertieren! 

Sie können auch eine konvertieren String in einen Zahlentyp.

val stringNumber = "101" val intValue = stringNumber.toInt () 

Im obigen Code haben wir die Variable konvertiert stringNumber In ein Int Geben Sie die Methode ein, indem Sie die Methode aufrufen toInt () auf die Variable. Wir können dies prägnanter schreiben, indem wir die Methode direkt in der Zeichenfolge aufrufen:

val intValue = "101" .toInt ()

Der boolesche Typ

Das Boolean Typ in Kotlin ist derselbe wie in Java. Sein Wert kann entweder wahr oder falsch sein. Die Disjunktion der Operationen (||), Verbindung (&&) und Negation (!) kann genauso wie Java auf booleschen Typen ausgeführt werden. 

val myTrueBoolean = true val myFalseBoolean = falsch val x = 1 val y = 3 val w = 4 val z = 6 val n = x < z && z > w // n ist wahr

Zeichenketten

Zeichenfolgen können entweder in doppelte oder dreifache Anführungszeichen gesetzt werden. Darüber hinaus können Escape-Zeichen mit Anführungszeichen verwendet werden. 

val myString = "Dies ist eine Zeichenfolge" val escapeString = "Dies ist eine Zeichenfolge mit neuer Zeile \ n"

Um eine Zeichenfolge zu erstellen, die sich über mehrere Zeilen in der Quelldatei erstreckt, verwenden wir dreifache Anführungszeichen:

val multipleStringLines = "" "Dies ist die erste Zeile Dies ist die zweite Zeile Dies ist die dritte Zeile" ""

Kotlin unterstützt auch String-Interpolations- oder String-Vorlagen. Dies ist eine einfachere Methode zum Erstellen dynamischer Zeichenfolgen als die Verkettung, die wir in Java verwenden. Mithilfe von Stringvorlagen können wir Variablen und Ausdrücke in einen String einfügen. 

val accountBalance = 200 val bankMessage = "Ihr Kontostand ist $ kontoBalance" // Ihr Kontostand beträgt 200

Im obigen Code haben wir ein Zeichenfolgenliteral erstellt, in dem wir mithilfe von a auf eine Variable verwiesen haben $ Zeichen vor dem Variablennamen. Beachten Sie, dass der Code nicht kompiliert wird, wenn die Variable nicht korrekt ist oder nicht existiert. 

Was ist, wenn Sie brauchen $ in deiner Saite? Du entkommst es einfach mit \ $! Sie können auch Methoden aus einem interpolierten aufrufen String direkt; Sie müssen geschweifte Klammern hinzufügen $ es einwickeln. 

val name = "Chike" val message = "Der erste Buchstabe in meinem Namen ist $ name.first ()" // Der erste Buchstabe in meinem Namen ist C

Eine weitere coole Sache, die Sie tun können, ist, eine Logik innerhalb der geschweiften Klammern zu erstellen, wenn Sie eine String wörtlich. 

val age = 40 val anotherMessage = "Sie sind $ if (alter> 60)" alt "" jung "" // Sie sind jung

Arrays

In Kotlin gibt es zwei Möglichkeiten, ein Array zu erstellen: die Helper-Funktion Anordnung von() oder der Konstruktor Array ()

Das Anordnung von() Funktion

Erstellen wir beispielsweise ein Array mit einigen Elementen mit Anordnung von().  

val myArray = arrayOf (4, 5, 7, 3)

Um nun auf eines der Elemente zuzugreifen, können wir dessen Index verwenden: myArray [2]. Beachten Sie, dass wir Werte verschiedener Typen in das übergeben können Anordnung von() als Argumente und es wird immer noch funktionieren-es wird ein Array von gemischtem Typ sein. 

val myArray = arrayOf (4, 5, 7, 3, "Chike", false)

Um zu erzwingen, dass alle Array-Werte den gleichen Typ haben, z. Int, Wir erklären einen Typ durch Aufruf Anordnung von() oder intArrayOf ().

val myArray3 = arrayOf(4, 5, 7, 3, "Chike", false) // wird nicht kompilieren. Val myArray4 = intArrayOf (4, 5, 7, 3, "Chike", false) // wird nicht kompiliert

Wir haben auch andere Hilfsfunktionen zum Erstellen von Arrays anderer Typen, wie z charArrayOf ()booleanArrayOf ()longArrayOf ()shortArrayOf ()byteArrayOf (), und so weiter. Wenn Sie diese Funktionen verwenden, wird hinter den Kulissen ein Array der jeweiligen Java-Grundtypen erstellt. Mit anderen Worten, intArrayOf () wird mit dem regulären Java-Grundtyp kompiliert int [], byteArrayOf () wird sein Byte[], longArrayOf () wird sein lange[], und so weiter. 

Das Array () Konstrukteur

Nun wollen wir sehen, wie man ein Array mit erstellt Array (). Der Konstruktor dieser Klasse erfordert eine Größen- und eine Lambda-Funktion. Wir werden später in dieser Serie mehr über Lambda-Funktionen lernen, aber für den Moment ist es nur eine einfache Möglichkeit, eine anonyme Funktion zu deklarieren. In diesem Fall besteht die Aufgabe der Lambda-Funktion darin, das Array mit Elementen zu initialisieren. 

val numbersArray = Array (5, i -> i * 2)

Im obigen Code haben wir im ersten Argument als Größe des Arrays 5 übergeben. Das zweite Argument enthält eine Lambda-Funktion, die den Index des Array-Elements übernimmt und dann den Wert zurückgibt, der an diesem Index in das Array eingefügt werden soll. Im obigen Beispiel haben wir also ein Array mit den Elementen 0, 2, 4, 6 und 8 erstellt.

4. Kommentare

Das ist leicht. In Kotlin sind die Kommentare genauso wie in Java. Wir können Block- oder Zeilenkommentare verwenden:

/ * Hallo, das ist ein Blockkommentar mit mehreren Zeilen. Dies ist eine andere Zeile. Dies ist wieder ein weiterer Kommentar * / // Dies ist ein einzeiliger Kommentar

Fazit

In diesem Lernprogramm haben Sie die Grundlagen der Programmiersprache Kotlin gelernt: Variablen, Basistypen, Typinferenz, Arrays und Kommentare. Im nächsten Lernprogramm der Kotlin From Scratch-Serie erfahren Sie mehr über Schleifen, Bereiche, Bedingungen, Sammlungen und Pakete in Kotlin. Bis bald!

Um mehr über die Kotlin-Sprache zu lernen, empfehle ich die Kotlin-Dokumentation. Oder sehen Sie sich einige unserer anderen Kotlin-Tutorials hier bei Envato Tuts an+.