Nicht aus der Schweiz? Besuchen Sie lehmanns.de
Kotlin -  Michael Kofler

Kotlin (eBook)

Das umfassende Handbuch
eBook Download: EPUB
2020 | 1. Auflage
823 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-7279-7 (ISBN)
Systemvoraussetzungen
49,90 inkl. MwSt
(CHF 48,75)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Kotlin ist das neue Schweizer Taschenmesser in der Softwareentwicklung. Ob mobile Apps oder Geschäftslogik am Backend, ob objektorientierte Paradigmen oder funktionale Programmierung mit Lambdas: Kotlin vereint die Stärken zahlreicher beliebter Sprachen zu einem modern Werkzeug für alle Fälle. In diesem umfassenden Handbuch gibt Michael Kofler Ihnen dazu einen Einblick in alle Sprachfeatures und zeigt Ihnen, wie Sie zeitgemäß Software entwicklen.

Aus dem Inhalt:

  • Crashkurs für Java-Umsteiger
  • IDEs: IntelliJ und Android Studio
  • Operatoren, Datentypen, Variablen, Klassen, Methoden: Alle Grundlagen
  • Lambda-Ausdrücke und funktionale Programmierung
  • Objektorientierte Programmierung inkl. Extensions, Delegation und Generics
  • Asynrchrone Programmierung und Koroutinen
  • Netzwerkfunktionen, XML und JSON
  • App-Programmierung mit Jetpack und Jetpack Compose
  • Backend-Entwicklung mit Ktor und Exposed
  • REST-APIs entwicklen und anwenden
  • Pakete, Module und Importe



Dr. Michael Kofler studierte Telematik an der TU Graz. Er zählt zu den erfolgreichsten und vielseitigsten Computerbuchautoren im deutschen Sprachraum. Zu seinen Themengebieten zählen neben Linux auch macOS, MySQL, KVM, Visual Basic und Excel-VBA. Viele seiner Bücher wurden übersetzt. Michael Kofler arbeitet auch als Software-Entwickler, Berater sowie als Lehrbeauftragter an einer Fachhochschule.

2    Crashkurs


Bevor ich Ihnen Kotlin in den nächsten Kapiteln systematisch vorstelle, gibt dieser Crashkurs einen ersten Überblick über die wichtigsten Syntaxregeln und hilft so bei der Orientierung. Der Crashkurs setzt voraus, dass Sie schon programmieren können und prinzipiell wissen, was Variablen, Funktionen usw. sind. Sollte das bei Ihnen nicht der Fall sein, ist es vermutlich besser, dieses Kapitel zu überspringen. (Generell richtet sich dieses Buch nicht primär an Programmiereinsteiger.)

Eine Motivation für diesen Crashkurs besteht darin, dass es unmöglich ist, eine Programmiersprache linear zu erklären. Egal, wo ich beginne – immer muss ich etwas anderes voraussetzen. Dieses Kapitel schafft insofern ein erstes Fundament. Seien Sie nicht irritiert, wenn Sie nicht jeden Begriff und jede Konstruktion auf Anhieb verstehen – in den weiteren Kapiteln folgen dann ausführlichere Erläuterungen sowie mehr Details und Varianten.

Das Kapitel endet mit einer kurzen Gegenüberstellung von Java- und Kotlin-Code. Wenn Sie schon mit Java programmiert haben, sehen Sie so auf ersten Blick einige wichtige Unterschiede zwischen Java und Kotlin.

2.1    Elementare Syntaxregeln


Kotlin-Anweisungen sind normalerweise einzeilig. Mehrzeilige Anweisungen sind erlaubt, wenn aufgrund von Klammern oder Operatoren klar ist, dass sie in der folgenden Zeile fortgesetzt werden:

println(
"Hello World!")
var a = 3 +
4 + 5

Wenn eine Zeile dagegen eine vollständige Anweisung bildet, ist eine Fortsetzung nicht möglich:

var b = 3
 + 4 + 5

Strichpunkte zum Abschluss von Anweisungen sind nicht erforderlich, aber erlaubt. Allerdings müssen Sie Strichpunkte verwenden, wenn Sie mehrere Anweisungen in einer Zeile anordnen möchten:

var a=3; var b=4; var c=5

Kommas


In Kotlin werden, wie in fast allen Programmiersprachen, Parameter durch Kommas getrennt:

val lst1 = listOf("Lorem", "ipsum", "dolores", "est")

Es ist erlaubt, auch nach dem letzten Parameter ein Komma anzugeben. Das ist vor allem dann praktisch, wenn Sie die Reihenfolge der Parameter später ändern wollen. Dann können Sie eine Zeile markieren und nach oben oder unten verschieben, ohne dass es Syntaxprobleme gibt:

val lst = listOf(
"est",
"Lorem",
"dolores",
"ipsum",
)

Kommentare


Einzeilige Kommentare werden mit // eingeleitet, mehrzeilige Kommentare starten mit /* und enden mit */. Derartige Kommentare dürfen auch verschachtelt werden.

var x = 4

Strukturierung


Code wird durch die geschwungenen Klammern { und } strukturiert. Wenn in einer Schleife, Verzweigung etc. nur eine Anweisung ausgeführt werden soll, dann dürfen die Klammern entfallen.

Code-Einrückungen sind optional und nicht Teil der Syntax. Es ist aber üblich, Code pro Ebene um vier Zeichen einzurücken. (In diesem Buch gibt es vereinzelt Listings, die mit nur zwei Zeichen pro Ebene eingerückt sind, um allzu viele Zeilenumbrüche zu vermeiden.)

Die meisten Anweisungen müssen sich innerhalb von Klassen oder Funktionen befinden. In der höchsten Ebene einer Code-Datei sind nur relativ wenige Konstrukte erlaubt, neben Klassen und Funktionen unter anderem Deklarationen von globalen Konstanten, Variablen oder Funktionen sowie Package- und Import-Anweisungen.

Variablen und Konstanten


Variablen müssen vor ihrer Verwendung mit var deklariert werden. Die Typangabe erfolgt nach einem Doppelpunkt hinter dem Variablennamen:

var l: Long

Die Typangabe darf entfallen, wenn die Variable sofort initialisiert wird. Kotlin entscheidet sich dann für einen geeigneten Datentyp, der sich später nicht mehr ändern kann.

var i = 3
i = "abc"

Kotlin kennt gleich zwei Arten von Konstanten:

  • Mit val deklarierte unveränderliche Variablen (read-only local variables) können zur Laufzeit einmalig mit einem beliebigen Wert initialisiert werden, dürfen sich dann aber nicht mehr ändern. In diesem Buch werden solche Konstanten als »unveränderliche Variablen« bezeichnet.

  • Werte von Konstanten, die mit const val deklariert sind, müssen dagegen bereits zum Zeitpunkt des Kompilierens feststehen. Derartige Konstanten sind allerdings nicht in an beliebigen Orten im Code erlaubt. Es ist üblich, const-Konstanten mit lauter Großbuchstaben zu benennen.

Das folgende Listing definiert die »echte« Konstante PI und initialisiert die unveränderliche Variable n mit einer Zufallszahl zwischen 0 und 10:

const val PI = 3.1415

val n = (0..10).random()

n = 7

Der Aufruf der random-Methode zeigt gleich auch eine Besonderheit von Kotlin: Bereiche (ranges) werden in der Form start..ende formuliert und auf verschiedene Weisen eingesetzt, unter anderem auch in Schleifen.

Umgang mit null


In Variablen ist der Zustand null im Sinne von »nicht initialisiert« unzulässig. Soll dies doch erlaubt werden, muss dem Datentyp ein Fragezeichen nachgestellt werden. Kotlin spricht dann von nullable types. Andere Programmiersprachen verwenden oft den Begriff Optional.

Die Schreibweise Type? ist sowohl für elementare Datentypen (Int, Double) als auch für allgemeine Klassen erlaubt.

var perhapsAResult: Int?
perhapsAResult = null
if (perhapsAResult is Int)
println("Ergebnis: " + perhapsAResult)
else
println("Kein Ergebnis verfügbar.")

Statt mit is Int können Sie die Valididät der Daten auch mit einem null-Test sicherstellen:


if (perhapsAResult != null)
println("Ergebnis: " + perhapsAResult)
else
println("Kein Ergebnis verfügbar.")

Zeichenketten


Gewöhnliche Zeichenketten werden zwischen doppelte Anführungszeichen gestellt:

val s = "abc"

Für Zeichenketten, die Sonderzeichen wie / enthalten oder über mehrere Zeichen reichen sollen, ist die folgende Raw-Syntax mit der Zeichenkombination """ vorgesehen:

val fname = """C:/Users/kofler"""
println(fname)

Um bei mehrzeiligen Zeichenketten die Einrückung zu eliminieren, starten Sie die Zeichenkette in der zweiten Zeile und fügen ihr die Methode trimIndent hinzu:

val sql = """
SELECT * FROM mytable
WHERE id > 20
ORDER BY name""".trimIndent()
println(sql)



Innerhalb von Zeichenketten wird $name durch den Inhalt des Variablennamens sowie ${ausdruck} durch den ausgewerteten Ausdruck ersetzt (String-Interpolation). Die Funktion sin und die Konstante PI befinden sich im Paket kotlin.math, das importiert werden muss. (Wenn Sie die import-Anweisung vergessen, weist IntelliJ Sie darauf hin. Sie können das fehlende Kommando dann bequem mit (Alt)+(¢) in den Code einfügen.)

import kotlin.math.*
val n = 7
println("n=$n")
val pi4 = PI / 4
println("Sinus = ${sin(pi4)}")

Listen, Sets und Maps


Die wichtigste Datenstruktur zur Speicherung mehrerer gleichartiger Daten sind Listen. Die beiden folgenden Zeilen definieren zwei unveränderliche Listen, einmal...

Erscheint lt. Verlag 28.10.2020
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
ISBN-10 3-8362-7279-2 / 3836272792
ISBN-13 978-3-8362-7279-7 / 9783836272797
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 8,9 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
CHF 38,95
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
CHF 48,75