Menu
CoddyTech

Parámetros con nombre y obligatorios

Parte de la sección Listas y pantallas del Journey de Flutter de Coddy. Lección 13 de 33.

Con tres o cuatro campos, Book('Dune', 'Frank Herbert', 412) es difícil de leer, y es fácil intercambiar dos cadenas por error. Los parámetros con nombre indican el nombre del campo en cada llamada:

class Book {
  final String title;
  final int pages;

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

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

Las llaves en el constructor hacen que los parámetros sean con nombre. Escribes cada uno como name: value, en cualquier orden.

Los widgets que has usado también aceptan parámetros con nombre, como Text(style: ...) o ListTile(title: ...).

required significa que el parámetro debe proporcionarse: si omites pages:, el editor muestra un error antes de que se ejecute la aplicación.

challenge icon

Desafío

Intermedio

Muestra cuántas páginas tiene cada libro:

  • añade un campo final int pages; a Book
  • cambia el constructor para que use parámetros con nombre y obligatorios, y escribe los libros como Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma tiene 474 páginas y Ulysses 730
  • muestra 412 pages al final de cada fila, como trailing: del mosaico

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Listas y pantallas

Practica por tu cuenta: Compilador de Flutter online