Die Programmiersprache Rust
Vorwort
Einführung
1.
Erste Schritte
1.1.
Installation
1.2.
Hallo Welt
1.3.
Hallo Cargo
2.
Ein Ratespiel programmieren
3.
Allgemeine Programmierkonzepte
3.1.
Variablen und Veränderbarkeit
3.2.
Datentypen
3.3.
Funktionen
3.4.
Kommentare
3.5.
Kontrollfluss
4.
Eigentümerschaft (ownership) verstehen
4.1.
Was ist Eigentümerschaft (ownership)?
4.2.
Referenzen und Ausleihen (borrowing)
4.3.
Der Anteilstyp (slice)
5.
Strukturen (structs) für zusammenhängende Daten verwenden
5.1.
Strukturen (structs) definieren und instanziieren
5.2.
Beispielprogramm mit Strukturen (structs)
5.3.
Methodensyntax
6.
Aufzählungen (enums) und Musterabgleich (pattern matching)
6.1.
Eine Aufzählung (enum) definieren
6.2.
Das Kontrollflusskonstrukt match
6.3.
Prägnanter Kontrollfluss mit if let
7.
Wachsende Projekte verwalten mit Paketen (packages), Kisten (crates) und Modulen
7.1.
Pakete (packages) und Kisten (crates)
7.2.
Mit Modulen den Kontrollumfang und Datenschutz steuern
7.3.
Mit Pfaden auf ein Element im Modulbaum verweisen
7.4.
Pfade in den Gültigkeitsbereich bringen mit dem Schlüsselwort use
7.5.
Module in verschiedene Dateien aufteilen
8.
Allgemeine Kollektionen
8.1.
Wertlisten in Vektoren ablegen
8.2.
UTF-8-kodierten Text in Zeichenketten (strings) ablegen
8.3.
Schlüssel mit zugehörigen Werten in Hashtabellen ablegen
9.
Fehlerbehandlung
9.1.
Nicht behebbare Fehler mit panic!
9.2.
Behebbare Fehler mit Result
9.3.
Wann panic! aufrufen und wann nicht?
10.
Generische Typen, Merkmale (traits) und Lebensdauer
10.1.
Generische Datentypen
10.2.
Merkmale (traits): Gemeinsames Verhalten definieren
10.3.
Referenzen validieren mit Lebensdauern
11.
Automatisierte Tests schreiben
11.1.
Tests schreiben
11.2.
Steuern wie Tests ausgeführt werden
11.3.
Testverwaltung
12.
Ein E/A-Projekt: Ein Kommandozeilenprogramm erstellen
12.1.
Kommandozeilenargumente entgegennehmen
12.2.
Eine Datei einlesen
12.3.
Refaktorierung um die Modularität und Fehlerbehandlung zu verbessern
12.4.
Bibliotheksfunktionalität mit testgetriebener Entwicklung erstellen
12.5.
Mit Umgebungsvariablen arbeiten
12.6.
Fehlermeldungen in die Standardfehlerausgabe anstatt der Standardausgabe schreiben
13.
Funktionale Sprachelemente: Iteratoren und Funktionsabschlüsse (closures)
13.1.
Funktionsabschlüsse (closures): Anonyme Funktionen, die ihre Umgebung erfassen
13.2.
Eine Reihe von Elementen verarbeiten mit Iteratoren
13.3.
Unser E/A-Projekt verbessern
13.4.
Performanzvergleich: Schleifen vs. Iteratoren
14.
Mehr über Cargo und Crates.io
14.1.
Bauvorgang anpassen mit Freigabeprofilen (release profiles)
14.2.
Kisten (crate) auf crates.io veröffentlichen
14.3.
Cargo-Arbeitsbereiche
14.4.
Installieren von Binärdateien mit cargo install
14.5.
Cargo um benutzerdefinierte Befehle erweitern
15.
Intelligente Zeiger
15.1.
Mit Box<T> auf Daten im Haldenspeicher zeigen
15.2.
Intelligente Zeiger wie normale Referenzen behandeln mit dem Merkmal (trait) Deref
15.3.
Programmcode beim Aufräumen ausführen mit dem Merkmal (trait) Drop
15.4.
Der referenzzählende intelligente Zeiger Rc<T>
15.5.
RefCell<T> und das innere Veränderbarkeitsmuster
15.6.
Referenzzyklen können zu einem Speicherleck führen
16.
Furchtlose Nebenläufigkeit
16.1.
Mit Strängen (threads) Programmcode gleichzeitig ausführen
16.2.
Nachrichtenaustausch zwischen Strängen (threads)
16.3.
Nebenläufigkeit mit gemeinsamem Zustand
16.4.
Erweiterbare Nebenläufigkeit mit den Merkmalen (traits) Sync und Send
17.
Objektorientierte Sprachelemente von Rust
17.1.
Charakteristiken objektorientierter Sprachen
17.2.
Merkmalsobjekte (trait objects) die Werte unterschiedlicher Typen erlauben
17.3.
Ein objektorientiertes Entwurfsmuster implementieren
18.
Muster (patterns) und Abgleich (matching)
18.1.
Alle Stellen an denen Muster (patterns) verwendet werden können
18.2.
Abweisbarkeit: Falls ein Muster (pattern) mal nicht passt
18.3.
Mustersyntax
19.
Fortgeschrittene Sprachelemente
19.1.
Unsicheres (unsafe) Rust
19.2.
Fortgeschrittene Merkmale (traits)
19.3.
Fortgeschrittene Typen
19.4.
Erweiterte Funktionen und Funktionsabschlüsse (closures)
19.5.
Makros
20.
Abschlussprojekt: Einen mehrsträngigen (multi-threaded) Webserver erstellen
20.1.
Einen einsträngigen (single-threaded) Webserver erstellen
20.2.
Unseren einsträngigen (single-threaded) Webserver in einen mehrsträngigen (multi-threaded) Webserver verwandeln
20.3.
Kontrolliertes Beenden und Aufräumen
21.
Anhang
21.1.
A - Schlüsselwörter
21.2.
B - Operatoren und Symbole
21.3.
C - Ableitbare Merkmale (traits)
21.4.
D - Nützliche Entwicklungswerkzeuge
21.5.
E - Ausgaben
21.6.
F - Übersetzungen des Buchs
21.7.
G - Wie Rust erstellt wird und „nächtliches Rust“
Light
Rust
Coal
Navy
Ayu
Die Programmiersprache Rust
Document not found (404)
This URL is invalid, sorry. Please use the navigation bar or search to continue.