Appearance
Anhang: Dart Kernwissen Zusammenfassung
1. Grundlegende Syntax-Merkblatt
Variablen und Konstanten
dart
var name = 'Dart'; // Typableitung
dynamic alter = 25; // Typ kann geändert werden
Object obj = 'Obj'; // Basis-Klasse
final stadt = 'Berlin'; // Einmalige Zuweisung
const pi = 3.14; // Kompilierungszeit-KonstanteGrundlegende Datentypen
int: Ganze Zahldouble: GleitkommazahlString: Zeichenfolgebool: WahrheitswertNull: Null
2. Datentypen, Sammlungen, Funktionshäufige Methoden
List-Methoden
add(): Hinzufügenremove(): Löschenlength: LängeisEmpty: Ist leercontains(): Enthältsort(): Sortieren
Set-Methoden
add(): Hinzufügenremove(): Löschencontains(): Enthältintersection(): Schnittmengeunion(): Vereinigungsmenge
Map-Methoden
keys: Schlüsselvalues: WertecontainsKey(): Enthält SchlüsselcontainsValue(): Enthält Wert
Funktionshäufige Methoden
map(): Abbildenwhere(): Filternreduce(): ReduzierenforEach(): Für jedes Elementevery(): Jedes Element prüfenany(): Irgendein Element prüfen
3. Objektorientierte Programmierung Kernwissen
Klassen und Objekte
dart
class Person {
String name; // Attribut
int alter; // Attribut
Person(this.name, this.alter); // Konstruktor
void vorstellen() { // Methode
print('Ich bin ' + name);
}
}Vererbung
dart
class Tier {
void essen() {
print('Tier isst');
}
}
class Hund extends Tier {
@override
void essen() {
print('Hund isst');
}
}Abstrakte Klassen und Schnittstellen
dart
abstract class Form {
double fläche();
}
class Rechteck implements Form {
@override
double fläche() => breite * höhe;
}4. Asynchrone Programmierung Methoden
Future
dart
Future<String> holeDaten() {
return Future.delayed(Duration(seconds: 2), () => 'Daten');
}async/await
dart
Future<void> datenVerarbeiten() async {
String daten = await holeDaten();
print(daten);
}Fehlerbehandlung
dart
try {
await datenHolen();
} catch (e) {
print('Fehler: ' + e.toString());
} finally {
print('Abgeschlossen');
}5. Häufige Code-Vorlagen
Einfache Klasse
dart
class Klasse {
// Attribute
String name;
// Konstruktor
Klasse(this.name);
// Methode
void methode() {
print(name);
}
}Asynchroner Funktionsaufruf
dart
Future<void> asynchronerAufruf() async {
try {
var result = await funktion();
print(result);
} catch (e) {
print(e);
}
}Liste durchlaufen
dart
List<int> zahlen = [1, 2, 3];
zahlen.forEach((zahl) => print(zahl));6. Häufige Fehler für Anfänger Vergleichstabelle
| Fehler | Beschreibung | Lösung |
|---|---|---|
| Null-Sicherheit nicht beachtet | Variablen können null sein | Verwende Null-Sicherheit (?) |
await am falschen Ort | await nur in async-Funktionen | Stelle sicher, dass die Funktion async ist |
| Falsche Vererbung | Vergisst @override | Verwende @override Annotation |
| Falscher Importpfad | Datei nicht gefunden | Überprüfe den Importpfad |
7. Häufige Drittanbieter-Bibliotheken nach Szenario
| Szenario | Bibliothek | Verwendungszweck |
|---|---|---|
| Netzwerkanfragen | http | HTTP-Anfragen senden |
| Lokaler Speicher | shared_preferences | Einfache Datenspeicherung |
| JSON-Verarbeitung | json_serializable | JSON-Analyse und -generierung |
| Zustandsverwaltung | provider | Flutter-Zustandsverwaltung |
| HTTP-Client | dio | Leistungsstarke HTTP-Client-Bibliothek |
