|
7 | 7 | ## Erste Schritte
|
8 | 8 |
|
9 | 9 | - [Erste Schritte](ch01-00-getting-started.md)
|
10 |
| - - [Installation](ch01-01-installation.md) |
11 |
| - - [Hallo Welt](ch01-02-hello-world.md) |
12 |
| - - [Hallo Cargo](ch01-03-hello-cargo.md) |
| 10 | + - [Installation](ch01-01-installation.md) |
| 11 | + - [Hallo Welt](ch01-02-hello-world.md) |
| 12 | + - [Hallo Cargo](ch01-03-hello-cargo.md) |
13 | 13 |
|
14 | 14 | - [Ein Ratespiel programmieren](ch02-00-guessing-game-tutorial.md)
|
15 | 15 |
|
16 | 16 | - [Allgemeine Programmierkonzepte](ch03-00-common-programming-concepts.md)
|
17 |
| - - [Variablen und Veränderbarkeit](ch03-01-variables-and-mutability.md) |
18 |
| - - [Datentypen](ch03-02-data-types.md) |
19 |
| - - [Funktionen](ch03-03-how-functions-work.md) |
20 |
| - - [Kommentare](ch03-04-comments.md) |
21 |
| - - [Kontrollfluss](ch03-05-control-flow.md) |
| 17 | + - [Variablen und Veränderbarkeit](ch03-01-variables-and-mutability.md) |
| 18 | + - [Datentypen](ch03-02-data-types.md) |
| 19 | + - [Funktionen](ch03-03-how-functions-work.md) |
| 20 | + - [Kommentare](ch03-04-comments.md) |
| 21 | + - [Kontrollfluss](ch03-05-control-flow.md) |
22 | 22 |
|
23 | 23 | - [Eigentümerschaft (ownership) verstehen](ch04-00-understanding-ownership.md)
|
24 |
| - - [Was ist Eigentümerschaft (ownership)?](ch04-01-what-is-ownership.md) |
25 |
| - - [Referenzen und Ausleihen (borrowing)](ch04-02-references-and-borrowing.md) |
26 |
| - - [Der Anteilstyp (slice)](ch04-03-slices.md) |
| 24 | + - [Was ist Eigentümerschaft (ownership)?](ch04-01-what-is-ownership.md) |
| 25 | + - [Referenzen und Ausleihen (borrowing)](ch04-02-references-and-borrowing.md) |
| 26 | + - [Der Anteilstyp (slice)](ch04-03-slices.md) |
27 | 27 |
|
28 | 28 | - [Strukturen (structs) für zusammenhängende Daten verwenden](ch05-00-structs.md)
|
29 |
| - - [Strukturen (structs) definieren und instanziieren](ch05-01-defining-structs.md) |
30 |
| - - [Beispielprogramm mit Strukturen (structs)](ch05-02-example-structs.md) |
31 |
| - - [Methodensyntax](ch05-03-method-syntax.md) |
| 29 | + - [Strukturen (structs) definieren und instanziieren](ch05-01-defining-structs.md) |
| 30 | + - [Beispielprogramm mit Strukturen (structs)](ch05-02-example-structs.md) |
| 31 | + - [Methodensyntax](ch05-03-method-syntax.md) |
32 | 32 |
|
33 | 33 | - [Aufzählungen (enums) und Musterabgleich (pattern matching)](ch06-00-enums.md)
|
34 |
| - - [Eine Aufzählung (enum) definieren](ch06-01-defining-an-enum.md) |
35 |
| - - [Das Kontrollflusskonstrukt `match`](ch06-02-match.md) |
36 |
| - - [Prägnanter Kontrollfluss mit `if let`](ch06-03-if-let.md) |
| 34 | + - [Eine Aufzählung (enum) definieren](ch06-01-defining-an-enum.md) |
| 35 | + - [Das Kontrollflusskonstrukt `match`](ch06-02-match.md) |
| 36 | + - [Prägnanter Kontrollfluss mit `if let` und `let else`](ch06-03-if-let.md) |
37 | 37 |
|
38 | 38 | ## Grundlegende Sprachelemente
|
39 | 39 |
|
40 | 40 | - [Wachsende Projekte verwalten mit Paketen (packages), Kisten (crates) und Modulen](ch07-00-managing-growing-projects-with-packages-crates-and-modules.md)
|
41 |
| - - [Pakete (packages) und Kisten (crates)](ch07-01-packages-and-crates.md) |
42 |
| - - [Mit Modulen den Kontrollumfang und Datenschutz steuern](ch07-02-defining-modules-to-control-scope-and-privacy.md) |
43 |
| - - [Mit Pfaden auf ein Element im Modulbaum verweisen](ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md) |
44 |
| - - [Pfade in den Gültigkeitsbereich bringen mit dem Schlüsselwort `use`](ch07-04-bringing-paths-into-scope-with-the-use-keyword.md) |
45 |
| - - [Module in verschiedene Dateien aufteilen](ch07-05-separating-modules-into-different-files.md) |
| 41 | + - [Pakete (packages) und Kisten (crates)](ch07-01-packages-and-crates.md) |
| 42 | + - [Mit Modulen den Kontrollumfang und Datenschutz steuern](ch07-02-defining-modules-to-control-scope-and-privacy.md) |
| 43 | + - [Mit Pfaden auf ein Element im Modulbaum verweisen](ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md) |
| 44 | + - [Pfade in den Gültigkeitsbereich bringen mit dem Schlüsselwort `use`](ch07-04-bringing-paths-into-scope-with-the-use-keyword.md) |
| 45 | + - [Module in verschiedene Dateien aufteilen](ch07-05-separating-modules-into-different-files.md) |
46 | 46 |
|
47 | 47 | - [Allgemeine Kollektionen](ch08-00-common-collections.md)
|
48 |
| - - [Wertlisten in Vektoren ablegen](ch08-01-vectors.md) |
49 |
| - - [UTF-8-kodierten Text in Zeichenketten (strings) ablegen](ch08-02-strings.md) |
50 |
| - - [Schlüssel mit zugehörigen Werten in Hashtabellen ablegen](ch08-03-hash-maps.md) |
| 48 | + - [Wertlisten in Vektoren ablegen](ch08-01-vectors.md) |
| 49 | + - [UTF-8-kodierten Text in Zeichenketten (strings) ablegen](ch08-02-strings.md) |
| 50 | + - [Schlüssel mit zugehörigen Werten in Hashtabellen ablegen](ch08-03-hash-maps.md) |
51 | 51 |
|
52 | 52 | - [Fehlerbehandlung](ch09-00-error-handling.md)
|
53 |
| - - [Nicht behebbare Fehler mit `panic!`](ch09-01-unrecoverable-errors-with-panic.md) |
54 |
| - - [Behebbare Fehler mit `Result`](ch09-02-recoverable-errors-with-result.md) |
55 |
| - - [Wann `panic!` aufrufen und wann nicht?](ch09-03-to-panic-or-not-to-panic.md) |
| 53 | + - [Nicht behebbare Fehler mit `panic!`](ch09-01-unrecoverable-errors-with-panic.md) |
| 54 | + - [Behebbare Fehler mit `Result`](ch09-02-recoverable-errors-with-result.md) |
| 55 | + - [Wann `panic!` aufrufen und wann nicht?](ch09-03-to-panic-or-not-to-panic.md) |
56 | 56 |
|
57 | 57 | - [Generische Typen, Merkmale (traits) und Lebensdauer](ch10-00-generics.md)
|
58 |
| - - [Generische Datentypen](ch10-01-syntax.md) |
59 |
| - - [Merkmale (traits): Gemeinsames Verhalten definieren](ch10-02-traits.md) |
60 |
| - - [Referenzen validieren mit Lebensdauern](ch10-03-lifetime-syntax.md) |
| 58 | + - [Generische Datentypen](ch10-01-syntax.md) |
| 59 | + - [Merkmale (traits): Gemeinsames Verhalten definieren](ch10-02-traits.md) |
| 60 | + - [Referenzen validieren mit Lebensdauern](ch10-03-lifetime-syntax.md) |
61 | 61 |
|
62 | 62 | - [Automatisierte Tests schreiben](ch11-00-testing.md)
|
63 |
| - - [Tests schreiben](ch11-01-writing-tests.md) |
64 |
| - - [Steuern wie Tests ausgeführt werden](ch11-02-running-tests.md) |
65 |
| - - [Testverwaltung](ch11-03-test-organization.md) |
| 63 | + - [Tests schreiben](ch11-01-writing-tests.md) |
| 64 | + - [Steuern wie Tests ausgeführt werden](ch11-02-running-tests.md) |
| 65 | + - [Testverwaltung](ch11-03-test-organization.md) |
66 | 66 |
|
67 | 67 | - [Ein E/A-Projekt: Ein Kommandozeilenprogramm erstellen](ch12-00-an-io-project.md)
|
68 |
| - - [Kommandozeilenargumente entgegennehmen](ch12-01-accepting-command-line-arguments.md) |
69 |
| - - [Eine Datei einlesen](ch12-02-reading-a-file.md) |
70 |
| - - [Refaktorierung um die Modularität und Fehlerbehandlung zu verbessern](ch12-03-improving-error-handling-and-modularity.md) |
71 |
| - - [Bibliotheksfunktionalität mit testgetriebener Entwicklung erstellen](ch12-04-testing-the-librarys-functionality.md) |
72 |
| - - [Mit Umgebungsvariablen arbeiten](ch12-05-working-with-environment-variables.md) |
73 |
| - - [Fehlermeldungen in die Standardfehlerausgabe anstatt der Standardausgabe schreiben](ch12-06-writing-to-stderr-instead-of-stdout.md) |
| 68 | + - [Kommandozeilenargumente entgegennehmen](ch12-01-accepting-command-line-arguments.md) |
| 69 | + - [Eine Datei einlesen](ch12-02-reading-a-file.md) |
| 70 | + - [Refaktorierung um die Modularität und Fehlerbehandlung zu verbessern](ch12-03-improving-error-handling-and-modularity.md) |
| 71 | + - [Bibliotheksfunktionalität mit testgetriebener Entwicklung erstellen](ch12-04-testing-the-librarys-functionality.md) |
| 72 | + - [Mit Umgebungsvariablen arbeiten](ch12-05-working-with-environment-variables.md) |
| 73 | + - [Fehlermeldungen in die Standardfehlerausgabe anstatt der Standardausgabe schreiben](ch12-06-writing-to-stderr-instead-of-stdout.md) |
74 | 74 |
|
75 | 75 | ## Denken in Rust
|
76 | 76 |
|
77 | 77 | - [Funktionale Sprachelemente: Iteratoren und Funktionsabschlüsse (closures)](ch13-00-functional-features.md)
|
78 |
| - - [Funktionsabschlüsse (closures): Anonyme Funktionen, die ihre Umgebung erfassen](ch13-01-closures.md) |
79 |
| - - [Eine Reihe von Elementen verarbeiten mit Iteratoren](ch13-02-iterators.md) |
80 |
| - - [Unser E/A-Projekt verbessern](ch13-03-improving-our-io-project.md) |
81 |
| - - [Performanzvergleich: Schleifen vs. Iteratoren](ch13-04-performance.md) |
| 78 | + - [Funktionsabschlüsse (closures): Anonyme Funktionen, die ihre Umgebung erfassen](ch13-01-closures.md) |
| 79 | + - [Eine Reihe von Elementen verarbeiten mit Iteratoren](ch13-02-iterators.md) |
| 80 | + - [Unser E/A-Projekt verbessern](ch13-03-improving-our-io-project.md) |
| 81 | + - [Performanzvergleich: Schleifen vs. Iteratoren](ch13-04-performance.md) |
82 | 82 |
|
83 | 83 | - [Mehr über Cargo und Crates.io](ch14-00-more-about-cargo.md)
|
84 |
| - - [Bauvorgang anpassen mit Freigabeprofilen (release profiles)](ch14-01-release-profiles.md) |
85 |
| - - [Kisten (crate) auf crates.io veröffentlichen](ch14-02-publishing-to-crates-io.md) |
86 |
| - - [Cargo-Arbeitsbereiche](ch14-03-cargo-workspaces.md) |
87 |
| - - [Installieren von Binärdateien mit `cargo install`](ch14-04-installing-binaries.md) |
88 |
| - - [Cargo um benutzerdefinierte Befehle erweitern](ch14-05-extending-cargo.md) |
| 84 | + - [Bauvorgang anpassen mit Freigabeprofilen (release profiles)](ch14-01-release-profiles.md) |
| 85 | + - [Kisten (crate) auf crates.io veröffentlichen](ch14-02-publishing-to-crates-io.md) |
| 86 | + - [Cargo-Arbeitsbereiche](ch14-03-cargo-workspaces.md) |
| 87 | + - [Installieren von Binärdateien mit `cargo install`](ch14-04-installing-binaries.md) |
| 88 | + - [Cargo um benutzerdefinierte Befehle erweitern](ch14-05-extending-cargo.md) |
89 | 89 |
|
90 | 90 | - [Intelligente Zeiger](ch15-00-smart-pointers.md)
|
91 |
| - - [Mit `Box<T>` auf Daten im Haldenspeicher zeigen](ch15-01-box.md) |
92 |
| - - [Intelligente Zeiger wie normale Referenzen behandeln mit dem Merkmal (trait) `Deref`](ch15-02-deref.md) |
93 |
| - - [Programmcode beim Aufräumen ausführen mit dem Merkmal (trait) `Drop`](ch15-03-drop.md) |
94 |
| - - [Der referenzzählende intelligente Zeiger `Rc<T>`](ch15-04-rc.md) |
95 |
| - - [`RefCell<T>` und das innere Veränderbarkeitsmuster](ch15-05-interior-mutability.md) |
96 |
| - - [Referenzzyklen können zu einem Speicherleck führen](ch15-06-reference-cycles.md) |
| 91 | + - [Mit `Box<T>` auf Daten im Haldenspeicher zeigen](ch15-01-box.md) |
| 92 | + - [Intelligente Zeiger wie normale Referenzen behandeln mit dem Merkmal (trait) `Deref`](ch15-02-deref.md) |
| 93 | + - [Programmcode beim Aufräumen ausführen mit dem Merkmal (trait) `Drop`](ch15-03-drop.md) |
| 94 | + - [Der referenzzählende intelligente Zeiger `Rc<T>`](ch15-04-rc.md) |
| 95 | + - [`RefCell<T>` und das innere Veränderbarkeitsmuster](ch15-05-interior-mutability.md) |
| 96 | + - [Referenzzyklen können zu einem Speicherleck führen](ch15-06-reference-cycles.md) |
97 | 97 |
|
98 | 98 | - [Furchtlose Nebenläufigkeit](ch16-00-concurrency.md)
|
99 |
| - - [Mit Strängen (threads) Programmcode gleichzeitig ausführen](ch16-01-threads.md) |
100 |
| - - [Nachrichtenaustausch zwischen Strängen (threads)](ch16-02-message-passing.md) |
101 |
| - - [Nebenläufigkeit mit gemeinsamem Zustand](ch16-03-shared-state.md) |
102 |
| - - [Erweiterbare Nebenläufigkeit mit den Merkmalen (traits) `Sync` und `Send`](ch16-04-extensible-concurrency-sync-and-send.md) |
| 99 | + - [Mit Strängen (threads) Programmcode gleichzeitig ausführen](ch16-01-threads.md) |
| 100 | + - [Nachrichtenaustausch zwischen Strängen (threads)](ch16-02-message-passing.md) |
| 101 | + - [Nebenläufigkeit mit gemeinsamem Zustand](ch16-03-shared-state.md) |
| 102 | + - [Erweiterbare Nebenläufigkeit mit den Merkmalen (traits) `Send` und `Sync`](ch16-04-extensible-concurrency-sync-and-send.md) |
103 | 103 |
|
104 |
| -- [Async und Await](ch17-00-async-await.md) |
| 104 | +- [Grundlagen der asynchronen Programmierung: Async, Await, Futures und Ströme](ch17-00-async-await.md) |
105 | 105 | - [Futures und die asynchrone Syntax](ch17-01-futures-and-syntax.md)
|
106 |
| - - [Nebenläufigkeit mit async](ch17-02-concurrency-with-async.md) |
| 106 | + - [Anwenden von Nebenläufigkeit mit async](ch17-02-concurrency-with-async.md) |
107 | 107 | - [Arbeiten mit einer beliebigen Anzahl von Futures](ch17-03-more-futures.md)
|
108 |
| - - [Ströme (streams)](ch17-04-streams.md) |
109 |
| - - [Merkmale für async](ch17-05-traits-for-async.md) |
| 108 | + - [Ströme (streams): Abfolge von Futures](ch17-04-streams.md) |
| 109 | + - [Ein genauerer Blick auf die Merkmale für Async](ch17-05-traits-for-async.md) |
110 | 110 | - [Futures, Aufgaben und Stränge](ch17-06-futures-tasks-threads.md)
|
111 | 111 |
|
112 |
| -- [Objektorientierte Sprachelemente von Rust](ch18-00-oop.md) |
113 |
| - - [Charakteristiken objektorientierter Sprachen](ch18-01-what-is-oo.md) |
114 |
| - - [Merkmalsobjekte (trait objects) die Werte unterschiedlicher Typen erlauben](ch18-02-trait-objects.md) |
115 |
| - - [Ein objektorientiertes Entwurfsmuster implementieren](ch18-03-oo-design-patterns.md) |
| 112 | +- [Objektorientierte Sprachelemente](ch18-00-oop.md) |
| 113 | + - [Charakteristiken objektorientierter Sprachen](ch18-01-what-is-oo.md) |
| 114 | + - [Merkmalsobjekte (trait objects) die Werte unterschiedlicher Typen erlauben](ch18-02-trait-objects.md) |
| 115 | + - [Ein objektorientiertes Entwurfsmuster implementieren](ch18-03-oo-design-patterns.md) |
116 | 116 |
|
117 | 117 | ## Fortgeschrittene Themen
|
118 | 118 |
|
119 | 119 | - [Muster (patterns) und Abgleich (matching)](ch19-00-patterns.md)
|
120 |
| - - [Alle Stellen an denen Muster (patterns) verwendet werden können](ch19-01-all-the-places-for-patterns.md) |
121 |
| - - [Abweisbarkeit: Falls ein Muster (pattern) mal nicht passt](ch19-02-refutability.md) |
122 |
| - - [Mustersyntax](ch19-03-pattern-syntax.md) |
| 120 | + - [Alle Stellen an denen Muster (patterns) verwendet werden können](ch19-01-all-the-places-for-patterns.md) |
| 121 | + - [Abweisbarkeit: Falls ein Muster (pattern) mal nicht passt](ch19-02-refutability.md) |
| 122 | + - [Mustersyntax](ch19-03-pattern-syntax.md) |
123 | 123 |
|
124 | 124 | - [Fortgeschrittene Sprachelemente](ch20-00-advanced-features.md)
|
125 |
| - - [Unsicheres (unsafe) Rust](ch20-01-unsafe-rust.md) |
126 |
| - - [Fortgeschrittene Merkmale (traits)](ch20-03-advanced-traits.md) |
127 |
| - - [Fortgeschrittene Typen](ch20-04-advanced-types.md) |
128 |
| - - [Erweiterte Funktionen und Funktionsabschlüsse (closures)](ch20-05-advanced-functions-and-closures.md) |
129 |
| - - [Makros](ch20-06-macros.md) |
| 125 | + - [Unsicheres (unsafe) Rust](ch20-01-unsafe-rust.md) |
| 126 | + - [Fortgeschrittene Merkmale (traits)](ch20-02-advanced-traits.md) |
| 127 | + - [Fortgeschrittene Typen](ch20-03-advanced-types.md) |
| 128 | + - [Erweiterte Funktionen und Funktionsabschlüsse (closures)](ch20-04-advanced-functions-and-closures.md) |
| 129 | + - [Makros](ch20-05-macros.md) |
130 | 130 |
|
131 | 131 | - [Abschlussprojekt: Einen mehrsträngigen (multi-threaded) Webserver erstellen](ch21-00-final-project-a-web-server.md)
|
132 |
| - - [Einen einsträngigen (single-threaded) Webserver erstellen](ch21-01-single-threaded.md) |
133 |
| - - [Unseren einsträngigen (single-threaded) Webserver in einen mehrsträngigen (multi-threaded) Webserver verwandeln](ch21-02-multithreaded.md) |
134 |
| - - [Kontrolliertes Beenden und Aufräumen](ch21-03-graceful-shutdown-and-cleanup.md) |
| 132 | + - [Einen einsträngigen (single-threaded) Webserver erstellen](ch21-01-single-threaded.md) |
| 133 | + - [Unseren einsträngigen (single-threaded) Webserver in einen mehrsträngigen (multi-threaded) Webserver verwandeln](ch21-02-multithreaded.md) |
| 134 | + - [Kontrolliertes Beenden und Aufräumen](ch21-03-graceful-shutdown-and-cleanup.md) |
135 | 135 |
|
136 | 136 | - [Anhang](appendix-00.md)
|
137 |
| - - [A - Schlüsselwörter](appendix-01-keywords.md) |
138 |
| - - [B - Operatoren und Symbole](appendix-02-operators.md) |
139 |
| - - [C - Ableitbare Merkmale (traits)](appendix-03-derivable-traits.md) |
140 |
| - - [D - Nützliche Entwicklungswerkzeuge](appendix-04-useful-development-tools.md) |
141 |
| - - [E - Ausgaben](appendix-05-editions.md) |
142 |
| - - [F - Übersetzungen des Buchs](appendix-06-translation.md) |
143 |
| - - [G - Wie Rust erstellt wird und „nächtliches Rust“](appendix-07-nightly-rust.md) |
| 137 | + - [A - Schlüsselwörter](appendix-01-keywords.md) |
| 138 | + - [B - Operatoren und Symbole](appendix-02-operators.md) |
| 139 | + - [C - Ableitbare Merkmale (traits)](appendix-03-derivable-traits.md) |
| 140 | + - [D - Nützliche Entwicklungswerkzeuge](appendix-04-useful-development-tools.md) |
| 141 | + - [E - Ausgaben](appendix-05-editions.md) |
| 142 | + - [F - Übersetzungen des Buchs](appendix-06-translation.md) |
| 143 | + - [G - Wie Rust erstellt wird und „nächtliches Rust“](appendix-07-nightly-rust.md) |
0 commit comments