Organisation von Code in Funktionen

Dart:
Organisation von Code in Funktionen

Wie geht das:

Grundlegende Funktion

In Dart definierst du eine Funktion mit dem Schlüsselwort void, wenn sie keinen Wert zurückgibt, oder gibst andernfalls den Typ des zurückgegebenen Werts an. Hier ist eine einfache Funktion, die eine Begrüßungsnachricht ausgibt:

void greet(String name) {
  print('Hallo, $name!');
}

void main() {
  greet('Alice');  // Ausgabe: Hallo, Alice!
}

Einen Wert zurückgeben

Funktionen können Werte zurückgeben. Das folgende Beispiel nimmt zwei Ganzzahlen als Eingabe und gibt ihre Summe zurück:

int add(int a, int b) {
  return a + b;
}

void main() {
  var sum = add(5, 3);
  print(sum);  // Ausgabe: 8
}

Anonyme Funktionen

Dart unterstützt anonyme Funktionen (auch als Lambda-Ausdrücke oder Closures bekannt), die für kurze, spontane Funktionalitäten praktisch sein können. So verwendet man eine anonyme Funktion mit der forEach-Methode einer Liste:

void main() {
  var fruits = ['Apfel', 'Banane', 'Kirsche'];
  fruits.forEach((item) {
    print(item);
  });
  // Ausgabe:
  // Apfel
  // Banane
  // Kirsche
}

Pfeilsyntax für Ein-Ausdruck-Funktionen

Für Funktionen, die nur einen einzigen Ausdruck enthalten, bietet Dart eine prägnante Syntax mit der “Pfeil”-Notation (=>). Dies ist besonders nützlich für kurze Funktionen oder das Übergeben von Funktionen als Argumente:

int square(int num) => num * num;

void main() {
  print(square(4));  // Ausgabe: 16
}

Nutzung von Drittanbieterbibliotheken

Für komplexere oder spezialisierte Funktionalitäten verlassen sich Dart-Programmierer oft auf Drittanbieterbibliotheken. Betrachten Sie die http-Bibliothek für HTTP-Anfragen. Zuerst füge http deiner pubspec.yaml-Datei unter Abhängigkeiten hinzu:

dependencies:
  http: ^0.13.3

Anschließend kannst du sie verwenden, um Daten aus dem Web abzurufen:

import 'package:http/http.dart' as http;

Future<void> fetchUserData() async {
  var response = await http.get(Uri.parse('https://api.example.com/users/1'));
  print(response.body);
}

void main() {
  fetchUserData();
  // Erwartete Ausgabe: JSON-Daten des Benutzers. Die tatsächliche Ausgabe hängt von der Antwort der API ab.
}

Denk daran, wenn du deinen Dart-Code in Funktionen organisierst, denke an Wiederverwendbarkeit, Klarheit und das Prinzip der einzelnen Verantwortung. Dies macht deinen Code nicht nur sauberer, sondern auch für andere (und das zukünftige Ich) leichter zu verstehen und zu warten.