סיכום - אחסון מפתח-ערך
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 93 מתוך 109.
אתגר
קלנתרגל שימוש במפות באמצעות מונה מילים פשוט!
המשימה שלך היא לממש תוכנית שסופרת כמה פעמים כל מילה מופיעה ברשימת מילים.
דרישות:
- השלם את הפונקציה
addWord()שמוסיפה מילה למפת המונה - השלם את הפונקציה
getCount()שמחזירה את הספירה עבור מילה מסוימת - השלם את הפונקציה
removeWord()שמסירה מילה ממונה המילים
זהו סיכום קצר של אופן השימוש במפות לאחסון מפתח-ערך.
הערה: הפלט יציג את ספירות המילים בסדר אלפביתי, לשם אחידות.
נסו בעצמכם
package main
import (
"fmt"
"sort"
)
// addWord מוסיפה מילה למפת הספירה
func addWord(counter map[string]int, word string) {
// הקוד שלך כאן
}
// getCount מחזירה את הספירה של מילה מסוימת
func getCount(counter map[string]int, word string) int {
// הקוד שלך כאן
return 0
}
// removeWord מסירה מילה מהמונה
// מחזירה true אם המילה נמצאה והוסרה
func removeWord(counter map[string]int, word string) bool {
// הקוד שלך כאן
return false
}
// printWordCounts מדפיסה את ספירות המילים בסדר אלפביתי
func printWordCounts(counter map[string]int) {
// קבל את כל המפתחות (המילים) מהמפה
words := make([]string, 0, len(counter))
for word := range counter {
words = append(words, word)
}
// מיין את המילים בסדר אלפביתי
sort.Strings(words)
// הדפס כל מילה ואת הספירה שלה לפי הסדר הממוין
for _, word := range words {
fmt.Printf("%s: %d\n", word, counter[word])
}
}
func main() {
// אתחל את מפת ספירת המילים
wordCounter := make(map[string]int)
// הוסף כמה מילים
words := []string{"apple", "banana", "apple", "orange", "banana", "apple"}
for _, word := range words {
addWord(wordCounter, word)
}
// הדפס את ספירות המילים
fmt.Println("Word counts:")
printWordCounts(wordCounter)
// קבל את מספר ההופעות של מילים מסוימות
fmt.Printf("\nCount for 'apple': %d\n", getCount(wordCounter, "apple"))
fmt.Printf("Count for 'grape': %d\n", getCount(wordCounter, "grape"))
// הסר מילה
removed := removeWord(wordCounter, "banana")
fmt.Printf("\nRemoved 'banana': %v\n", removed)
// נסה להסיר מילה שאינה קיימת
removed = removeWord(wordCounter, "grape")
fmt.Printf("Removed 'grape': %v\n", removed)
// הדפס את מספר ההופעות הסופי של כל מילה
fmt.Println("\nFinal word counts:")
printWordCounts(wordCounter)
}כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטות9מצביעים
מהו מצביע?הצהרת משתני מצביעאופרטור קבלת הכתובתביטול הפניה של מצביעיםשימוש במצביעים בפונקציותמצביעי Nilסיכום – הבנת מצביעים12טיפוסים מורכבים: מפות
מבוא למפותהצהרת מפות מילוליותיצירת מפות באמצעות `make`הוספה ועדכון של מפתח-ערךגישה לערכי מפהבדיקת קיום מפתחמחיקת רשומות ממפהאורך המפהמעבר על מפותסיכום - אחסון מפתח-ערךתרגלו בעצמכם: קומפיילר Go אונליין