פרמטרים בעלי שם ונדרשים
חלק מהיחידה רשימות ומסכים במסלול ה-Flutter של Coddy. שיעור 13 מתוך 33.
עם שלושה או ארבעה שדות, קשה לקרוא את Book('Dune', 'Frank Herbert', 412), וקל להחליף בטעות בין שתי מחרוזות. פרמטרים בעלי שם מציינים את שם השדה בכל קריאה:
class Book {
final String title;
final int pages;
Book({required this.title, required this.pages});
}
Book(title: 'Dune', pages: 412)הסוגריים המסולסלים בבנאי הופכים את הפרמטרים לבעלי שם. כותבים כל אחד מהם בצורה name: value, בכל סדר.
גם הווידג'טים שהשתמשת בהם מקבלים פרמטרים בעלי שם, למשל Text(style: ...) או ListTile(title: ...).
required פירושו שחובה לספק את הפרמטר: אם משמיטים את pages:, העורך מציג שגיאה לפני שהאפליקציה מופעלת.
אתגר
בינוניהצג כמה עמודים יש בכל ספר:
- הוסף שדה
final int pages;ל־Book - שנה את הבנאי כך שישתמש בפרמטרים בעלי שם וחובה, וכתוב את הספרים כך:
Book(title: 'Dune', author: 'Frank Herbert', pages: 412). ב־Emma יש474עמודים וב־Ulysses יש730 - הצג
412 pagesבסוף כל שורה, בתור ה־trailing:של האריח
נסו בעצמכם
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final List<Book> books = [
Book('Dune', 'Frank Herbert'),
Book('Emma', 'Jane Austen'),
Book('Ulysses', 'James Joyce'),
];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Books')),
body: ListView(
children: [
for (Book book in books)
ListTile(
title: Text(book.title),
subtitle: Text(book.author),
),
],
),
),
);
}
}
class Book {
final String title;
final String author;
Book(this.title, this.author);
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה רשימות ומסכים
4המחלקות שלכם
מחלקה לנתונים שלכםפרמטרים בעלי שם ונדרשיםשדות שיכולים להיות ריקיםיצירת Widgets מנתונים באמצעות mapסינון רשימה באמצעות whereחיפוש ב־Map6כרטיסיות, מגירות והחלקות
כרטיסיות עם סרגל ניווטאייקונים מלאים לכרטיסייה הפתוחהמגירה צדדיתהחלקה למחיקהביטול החלקהתרגלו בעצמכם: קומפיילר Flutter אונליין