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 AxeMap<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.
Desafío
FácilLa 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 enprices - agrega un
Bowpor150monedas 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),
),
],
),
),
);
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Listas y pantallas
1Listas con desplazamiento
Una lista desplazableElementos de listaAl principio y al finalToca un elemento de listaSeparadores entre filas3Tarjetas y cuadrículas
Tarjetas en una listaUna cuadrícula de mosaicosUna cuadrícula creada con un constructor6Pestañas, cajones y deslizamientos
Pestañas con una barra de navegaciónIconos rellenos para la pestaña abiertaUn cajón lateralDeslizar para eliminarDeshacer un deslizamientoPractica por tu cuenta: Compilador de Flutter online