Menu
CoddyTech

Поиск в Map

Часть раздела Списки и экраны путешествия по Flutter на Coddy. Урок 17 из 33.

Map хранит пары: ключ, по которому выполняется поиск, и соответствующее ему значение, как слово и его значение в словаре. Здесь у каждого товара в игровом магазине есть цена:

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

prices['Sword']   // 120
prices['Axe']     // null: Axe отсутствует

Map<String, int> означает, что ключи — строки, а значения имеют тип int. Найди значение по ключу, указав его в квадратных скобках. Если в карте нет такого ключа, возвращается null.

Добавь пару с помощью prices['Bow'] = 150; или запиши её в карту. prices.keys — это все ключи в порядке добавления, готовые для использования в for.

challenge icon

Задание

Легко

Магазин перечисляет товары, но не указывает цены. Покажите цены и добавьте в ассортимент ещё один товар:

  • покажите цену каждого товара в конце его строки, например 120 coins, взяв её из prices
  • добавьте на карту Bow стоимостью 150 монет

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Списки и экраны

Потренируйтесь самостоятельно: Онлайн-компилятор Flutter