Menu
Coddy logo textTech

פונקציות אנונימיות

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 44 מתוך 65.

עד עכשיו יצרת פונקציות עם שמות כמו calculateTotal או printMessage. אבל לפעמים צריך פונקציה פשוטה למשימה ספציפית אחת בלבד, ומתן שם לה מרגיש מיותר. כאן פונקציות אנונימיות מועילות.

פונקציה אנונימית היא פונקציה ללא שם. מגדירים אותה בדיוק במקום שבו צריך אותה, וכך הקוד שלך תמציתי יותר עבור פעולות קצרות וחד-פעמיות. התחביר פשוט: פשוט כותבים את רשימת הפרמטרים ואחריה את גוף הפונקציה:

(parameter) {
  // גוף הפונקציה
}

פונקציות אנונימיות שימושיות במיוחד עם מתודות של רשימות. לדוגמה, במקום ליצור פונקציה נפרדת בעלת שם כדי להדפיס כל פריט ברשימה, אפשר להשתמש ישירות בפונקציה אנונימית עם המתודה forEach:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

הגישה הזו שומרת על הקוד שלך נקי וממוקד, במיוחד כשהלוגיקה של הפונקציה פשוטה ולא יהיה בה שימוש חוזר במקום אחר בתוכנית שלך.

challenge icon

אתגר

קל

צרו תוכנית שמעבדת רשימה של שמות עובדים באמצעות פונקציות אנונימיות. התוכנית שלכם תדגים כיצד להשתמש בפונקציות אנונימיות עם השיטה forEach כדי לבצע פעולות שונות על כל איבר ברשימה.

  1. קראו מחרוזת קלט שמכילה שמות עובדים המופרדים בפסיקים (לדוגמה, "Alice,Bob,Charlie,Diana")
  2. פצלו את מחרוזת הקלט לרשימה של שמות נפרדים באמצעות השיטה split()
  3. השתמשו בשיטה forEach עם פונקציה אנונימית כדי להדפיס כל שם עובד עם הודעת ברכה
  4. השתמשו בשיטה forEach עם פונקציה אנונימית נוספת כדי להדפיס כל שם עובד באותיות גדולות
  5. השתמשו בשיטה forEach עם פונקציה אנונימית שלישית כדי להדפיס כל שם עובד לצד מספר התווים שבו

לדוגמה, אם הקלט הוא "Alice,Bob,Charlie", התוכנית שלכם צריכה להציג:

Processing employee list: Alice,Bob,Charlie
===========================================
Welcome Messages:
Welcome to the team, Alice!
Welcome to the team, Bob!
Welcome to the team, Charlie!
===========================================
Names in Uppercase:
ALICE
BOB
CHARLIE
===========================================
Name Lengths:
Alice has 5 characters
Bob has 3 characters
Charlie has 7 characters

אם הקלט הוא "John,Sarah", התוכנית שלכם צריכה להציג:

Processing employee list: John,Sarah
===========================================
Welcome Messages:
Welcome to the team, John!
Welcome to the team, Sarah!
===========================================
Names in Uppercase:
JOHN
SARAH
===========================================
Name Lengths:
John has 4 characters
Sarah has 5 characters

התוכנית שלכם חייבת להשתמש בשלוש קריאות נפרדות לשיטה forEach, כשכל אחת מהן משתמשת בפונקציה אנונימית משלה. יש להגדיר את הפונקציות האנונימיות בתוך השורה, בלי לתת להן שמות. כל פונקציה אנונימית צריכה לקבל פרמטר יחיד שמייצג את שם העובד הנוכחי ולבצע את הפעולה שצוינה. השתמשו באינטרפולציה של מחרוזות כדי לעצב את הודעות הפלט בדיוק כפי שהן מוצגות למעלה.

נסו בעצמכם

import 'dart:io';

void main() {
  // קראו את מחרוזת הקלט המכילה שמות עובדים
  String? input = stdin.readLineSync();
  
  // פצלו את הקלט לרשימת שמות
  List<String> employeeNames = input!.split(',');
  
  // הדפיסו את הודעת העיבוד הראשונית
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: כתבו את הקוד שלכם למטה
  // השתמשו ב-forEach עם פונקציות אנונימיות כדי:
  // 1. להדפיס הודעות ברכה
  // 2. להדפיס שמות באותיות גדולות  
  // 3. להדפיס את אורכי השמות
  
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Dart אונליין