Menu
CoddyTech

이름 지정 매개변수와 필수 매개변수

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:를 생략하면 앱을 실행하기 전에 편집기에 오류가 표시됩니다.

challenge icon

챌린지

중급

각 책의 분량을 표시하세요:

  • 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);
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

목록과 화면의 모든 레슨

직접 연습해 보세요: 온라인 Flutter 컴파일러