이름 지정 매개변수와 필수 매개변수
Coddy Flutter 여정의 목록과 화면 섹션에 포함된 레슨. 33개 중 13번째.
필드가 세 개나 네 개라면 Book('Dune', 'Frank Herbert', 412)는 읽기 어렵고, 실수로 두 문자열의 순서를 바꾸기도 쉽습니다. 이름이 지정된 매개변수를 사용하면 호출할 때마다 필드 이름을 표시할 수 있습니다.
class Book {
final String title;
final int pages;
Book({required this.title, required this.pages});
}
Book(title: 'Dune', pages: 412)생성자에 중괄호를 사용하면 매개변수의 이름을 지정할 수 있습니다. 각 매개변수를 순서에 상관없이 name: value 형식으로 작성합니다.
지금까지 사용한 위젯에도 이름이 지정된 매개변수가 있습니다. 예를 들면 Text(style: ...) 또는 ListTile(title: ...)입니다.
required는 매개변수를 반드시 지정해야 한다는 뜻입니다. pages:를 생략하면 앱을 실행하기 전에 편집기에 오류가 표시됩니다.
챌린지
중급각 책의 분량을 표시하세요:
Book에final int pages;필드를 추가하세요- 생성자를 이름 지정 필수 매개변수 방식으로 변경하고, 책을
Book(title: 'Dune', author: 'Frank Herbert', pages: 412)와 같이 작성하세요. Emma는474페이지이고 Ulysses는730페이지입니다 - 각 행의 끝에
412 pages를 타일의trailing:으로 표시하세요
직접 해보기
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);
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
목록과 화면의 모든 레슨
직접 연습해 보세요: 온라인 Flutter 컴파일러