Menu
CoddyTech

Nazwane i wymagane parametry

Część sekcji Listy i ekrany ścieżki Flutter w Coddy. Lekcja 13 z 33.

Przy trzech lub czterech polach zapis Book('Dune', 'Frank Herbert', 412) jest trudny do odczytania, a przez pomyłkę łatwo zamienić miejscami dwa ciągi znaków. Parametry nazwane umieszczają nazwę pola przy każdym wywołaniu:

class Book {
  final String title;
  final int pages;

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

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

Nawiasy klamrowe w konstruktorze sprawiają, że parametry są nazwane. Zapisujesz każdy z nich jako name: value, w dowolnej kolejności.

Używane przez Ciebie widżety również przyjmują parametry nazwane, na przykład Text(style: ...) lub ListTile(title: ...).

required oznacza, że parametr musi zostać podany: jeśli pominiesz pages:, edytor wyświetli błąd, zanim aplikacja zostanie uruchomiona.

challenge icon

Wyzwanie

Średni

Pokaż, ile stron ma każda książka:

  • dodaj pole final int pages; do Book
  • zmień konstruktor tak, aby używał nazwanych, wymaganych parametrów, i zapisz książki jako Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma ma 474 stron, a Ulysses 730
  • wyświetl 412 pages na końcu każdego wiersza, jako trailing: kafelka

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Listy i ekrany

Poćwicz samodzielnie: Kompilator Flutter online