Menu
CoddyTech

Buscar en un mapa

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

Un Map almacena pares: una clave que buscas y el valor que le corresponde, como una palabra y su significado en un diccionario. Aquí, cada artículo de una tienda de juegos tiene un precio:

Map<String, int> prices = {
  'Sword': 120,
  'Potion': 25,
};

prices['Sword']   // 120
prices['Axe']     // null: no hay Axe

Map<String, int> indica que las claves son cadenas y los valores son enteros. Busca un valor usando su clave entre corchetes. Si el mapa no contiene una clave, devuelve null.

Añade un par con prices['Bow'] = 150; o escríbelo en el mapa. prices.keys contiene todas las claves, en el orden en que se añadieron, listas para usarse en un for.

challenge icon

Desafío

Fácil

La tienda muestra sus artículos, pero no sus precios. Muestra los precios y agrega un artículo más al inventario:

  • muestra el precio de cada artículo al final de su fila, como 120 coins, consultándolo en prices
  • agrega un Bow por 150 monedas al mapa

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 Map<String, int> prices = {
      'Sword': 120,
      'Shield': 90,
      'Potion': 25,
    };
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Shop')),
        body: ListView(
          children: [
            for (String item in prices.keys)
              ListTile(
                title: Text(item),
              ),
          ],
        ),
      ),
    );
  }
}
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