Menu
CoddyTech

Benannte und erforderliche Parameter

Teil des Abschnitts Listen und Bildschirme der Flutter-Journey von Coddy. Lektion 13 von 33.

Bei drei oder vier Feldern ist Book('Dune', 'Frank Herbert', 412) schwer zu lesen, und es ist leicht, versehentlich zwei Zeichenketten zu vertauschen. Benannte Parameter geben bei jedem Aufruf den Namen des Feldes an:

class Book {
  final String title;
  final int pages;

  Book({required this.title, required this.pages});
}

Book(title: 'Dune', pages: 412)

Die geschweiften Klammern im Konstruktor machen die Parameter zu benannten Parametern. Du schreibst jeden einzelnen als name: value, in beliebiger Reihenfolge.

Auch die Widgets, die du verwendet hast, nehmen benannte Parameter entgegen, zum Beispiel Text(style: ...) oder ListTile(title: ...).

required bedeutet, dass der Parameter angegeben werden muss: Lässt du pages: weg, zeigt der Editor einen Fehler an, bevor die App ausgeführt wird.

challenge icon

Aufgabe

Mittel

Zeige, wie umfangreich jedes Buch ist:

  • Füge ein Feld final int pages; zu Book hinzu
  • Ändere den Konstruktor so, dass er benannte, erforderliche Parameter verwendet, und schreibe die Bücher als Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma hat 474 Seiten und Ulysses 730
  • Zeige 412 pages am Ende jeder Zeile als trailing: der Kachel an

Probier es selbst

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final List<Book> books = [
      Book('Dune', 'Frank Herbert'),
      Book('Emma', 'Jane Austen'),
      Book('Ulysses', 'James Joyce'),
    ];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Books')),
        body: ListView(
          children: [
            for (Book book in books)
              ListTile(
                title: Text(book.title),
                subtitle: Text(book.author),
              ),
          ],
        ),
      ),
    );
  }
}

class Book {
  final String title;
  final String author;

  Book(this.title, this.author);
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Listen und Bildschirme

Übe selbstständig: Online-Flutter-Compiler