Поиск в 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.
Задание
ЛегкоМагазин перечисляет товары, но не указывает цены. Покажите цены и добавьте в ассортимент ещё один товар:
- покажите цену каждого товара в конце его строки, например
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),
),
],
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Списки и экраны
1Прокручиваемые списки
Список с прокруткойЭлементы спискаНачало и конецНажатие на элемент спискаРазделители между строками6Вкладки, боковые панели и свайпы
Вкладки с панелью навигацииЗаливные значки для открытой вкладкиБоковая панельУдаление свайпомОтмена свайпаПотренируйтесь самостоятельно: Онлайн-компилятор Flutter