חיפוש ב־Map
חלק מהיחידה רשימות ומסכים במסלול ה-Flutter של Coddy. שיעור 17 מתוך 33.
ה-Map שומר זוגות: מפתח שמחפשים לפיו, והערך שמתאים לו, כמו מילה והמשמעות שלה במילון. כאן לכל פריט בחנות במשחק יש מחיר:
Map<String, int> prices = {
'Sword': 120,
'Potion': 25,
};
prices['Sword'] // 120
prices['Axe'] // null: אין AxeMap<String, 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),
),
],
),
),
);
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה רשימות ומסכים
תרגלו בעצמכם: קומפיילר Flutter אונליין