Tra cứu trong Map
Thuộc phần Danh sách và màn hình trong hành trình Flutter của Coddy. Bài học 17 trên 33.
Map lưu các cặp gồm khóa (key) để bạn tra cứu và giá trị (value) tương ứng, giống như một từ và nghĩa của nó trong từ điển. Ở đây, mỗi vật phẩm trong cửa hàng trò chơi có một mức giá:
Map<String, int> prices = {
'Sword': 120,
'Potion': 25,
};
prices['Sword'] // 120
prices['Axe'] // null: không có AxeMap<String, int> cho biết các khóa là chuỗi (string) và các giá trị là số nguyên. Tra cứu giá trị bằng khóa của nó trong dấu ngoặc vuông. Nếu bản đồ không có khóa đó, kết quả là null.
Thêm một cặp bằng prices['Bow'] = 150; hoặc ghi cặp đó vào bản đồ. prices.keys chứa tất cả các khóa theo thứ tự chúng được thêm vào, sẵn sàng để dùng với vòng lặp for.
Thử thách
DễCửa hàng liệt kê các mặt hàng nhưng không có giá. Hãy hiển thị giá và thêm một mặt hàng vào kho:
- hiển thị giá của từng mặt hàng ở cuối hàng, chẳng hạn như
120 coins, tra cứu trongprices - thêm một
Bowvới giá150xu vào map
Tự làm thử
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),
),
],
),
),
);
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Danh sách và màn hình
1Danh sách cuộn
Danh sách có thể cuộnÔ danh sáchPhần đầu và phần cuốiChạm vào một ô danh sáchĐường phân cách giữa các hàng4Các lớp của riêng bạn
Một lớp cho dữ liệu của bạnTham số có tên và bắt buộcCác trường có thể để trốngTạo widget từ dữ liệu bằng mapLọc danh sách bằng whereTra cứu trong Map5Nhiều hơn một màn hình
Mở màn hình mớiMũi tên quay lạiQuay lại bằng nútGửi dữ liệu đến màn hìnhNhận lại kết quả6Tab, ngăn kéo và thao tác vuốt
Tab với thanh điều hướngBiểu tượng tô kín cho tab đang mởNgăn kéo bênVuốt để xóaHoàn tác thao tác vuốtTự luyện tập: Trình biên dịch Flutter online