Menu
CoddyTech

Tham số có tên và bắt buộc

Thuộc phần Danh sách và màn hình trong hành trình Flutter của Coddy. Bài học 13 trên 33.

Khi có ba hoặc bốn trường, Book('Dune', 'Frank Herbert', 412) khó đọc, và bạn dễ vô tình đổi chỗ hai chuỗi. Tham số có tên đặt tên trường vào mỗi lần gọi:

class Book {
  final String title;
  final int pages;

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

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

Dấu ngoặc nhọn trong hàm khởi tạo giúp tham số có tên. Bạn viết từng tham số theo dạng name: value, theo thứ tự bất kỳ.

Các widget bạn đã dùng cũng nhận tham số có tên, chẳng hạn như Text(style: ...) hoặc ListTile(title: ...).

required nghĩa là bạn phải cung cấp tham số đó: nếu bỏ pages:, trình chỉnh sửa sẽ báo lỗi trước khi ứng dụng chạy.

challenge icon

Thử thách

Trung bình

Hiển thị số trang của mỗi cuốn sách:

  • thêm trường final int pages; vào Book
  • đổi hàm khởi tạo thành hàm có các tham số được đặt tên và bắt buộc, rồi viết các cuốn sách dưới dạng Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma có 474 trang và Ulysses có 730 trang
  • hiển thị 412 pages ở cuối mỗi hàng, làm giá trị trailing: của mục

Tự làm thử

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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Danh sách và màn hình

Tự luyện tập: Trình biên dịch Flutter online