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 AxeMap<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.
Wyzwanie
ŁatwySklep 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ą zprices - dodaj do mapy łuk
Bowza150monet
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),
),
],
),
),
);
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Listy i ekrany
1Przewijane listy
Lista z przewijaniemElementy listyPoczątek i koniecDotknij elementu listySeparatory między wierszami5Więcej niż jeden ekran
Otwórz nowy ekranStrzałka wsteczWróć za pomocą przyciskuPrześlij dane do ekranuOdbierz wynik6Karty, szuflady i gesty przesunięcia
Karty z paskiem nawigacyjnymWypełnione ikony dla otwartej kartyBoczna szufladaPrzesuń, aby usunąćCofnij przesunięciePoćwicz samodzielnie: Kompilator Flutter online