Menu
CoddyTech

Wyszukiwanie w mapie

Część sekcji Listy i ekrany ścieżki Flutter w Coddy. Lekcja 17 z 33.

Map przechowuje pary: klucz, którego szukasz, oraz powiązaną z nim wartość, tak jak słowo i jego znaczenie w słowniku. Tutaj każdy przedmiot w sklepie z grą ma swoją cenę:

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

prices['Sword']   // 120
prices['Axe']     // null: nie ma Axe

Map<String, int> oznacza, że kluczami są ciągi znaków, a wartościami liczby typu int. Wyszukaj wartość za pomocą jej klucza w nawiasach kwadratowych. Klucz, którego nie ma w mapie, zwraca null.

Dodaj parę za pomocą prices['Bow'] = 150; albo wpisz ją do mapy. prices.keys zawiera wszystkie klucze w kolejności, w jakiej zostały dodane, gotowe do użycia w pętli for.

challenge icon

Wyzwanie

Łatwy

Sklep wyświetla swoje przedmioty, ale nie ich ceny. Pokaż ceny i dodaj jeszcze jeden przedmiot:

  • wyświetl cenę każdego przedmiotu na końcu jego wiersza, na przykład 120 coins, pobraną z prices
  • dodaj do mapy łuk Bow za 150 monet

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Listy i ekrany

Poćwicz samodzielnie: Kompilator Flutter online