Menu
CoddyTech

Adlandırılmış ve Zorunlu Parametreler

Coddy'nin Flutter Journey'sinin Listeler ve Ekranlar bölümünün bir parçası. Ders 13 / 33.

Üç ya da dört alan olduğunda, Book('Dune', 'Frank Herbert', 412) okunması zor bir hâl alır ve yanlışlıkla iki dizenin yerini değiştirmek kolaydır. Adlandırılmış parametreler, her çağrıda alanın adını belirtir:

class Book {
  final String title;
  final int pages;

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

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

Kurucudaki küme parantezleri parametreleri adlandırılmış hâle getirir. Her birini istediğin sırada name: value biçiminde yazarsın.

Kullandığın araç takımları da adlandırılmış parametreler alır; örneğin Text(style: ...) veya ListTile(title: ...).

required, parametrenin verilmesi gerektiği anlamına gelir: pages: değerini yazmazsan uygulama çalışmadan önce düzenleyici bir hata gösterir.

challenge icon

Görev

Orta

Her kitabın uzunluğunu göster:

  • Book sınıfına bir final int pages; alanı ekle
  • yapıcıyı adlandırılmış, zorunlu parametreler kullanacak şekilde değiştir ve kitapları Book(title: 'Dune', author: 'Frank Herbert', pages: 412) biçiminde yaz. Emma'nın 474 sayfası, Ulysses'in ise 730 sayfası var
  • her satırın sonunda, kutucuğun trailing: özelliği olarak 412 pages göster

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Listeler ve Ekranlar bölümündeki tüm dersler

Kendi başına pratik yap: Online Flutter derleyicisi