Menu
CoddyTech

Rechercher dans une map

Fait partie de la section Listes et écrans du Journey Flutter de Coddy. Leçon 17 sur 33.

Une Map stocke des paires : une clé que tu recherches et la valeur qui lui correspond, comme un mot et sa définition dans un dictionnaire. Ici, chaque article d’une boutique de jeu a un prix :

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

prices['Sword']   // 120
prices['Axe']     // null : il n'y a pas de Axe

Map<String, int> indique que les clés sont des chaînes de caractères et les valeurs, des entiers. Recherche une valeur à l’aide de sa clé entre crochets. Si la clé n’existe pas dans la map, le résultat est null.

Ajoute une paire avec prices['Bow'] = 150;, ou écris-la directement dans la map. prices.keys contient toutes les clés, dans l’ordre où elles ont été ajoutées, prêtes à être parcourues avec une boucle for.

challenge icon

Défi

Facile

La boutique affiche ses articles, mais pas leurs prix. Affiche les prix et ajoute un article au stock :

  • affiche le prix de chaque article à la fin de sa ligne, par exemple 120 coins, recherché dans prices
  • ajoute un Bow pour 150 pièces à la map

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Listes et écrans

Entraînez-vous par vous-même : Compilateur Flutter en ligne