Menu
Coddy logo textTech

סיכום - אחסון מפתח-ערך

חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 93 מתוך 109.

challenge icon

אתגר

קל

נתרגל שימוש במפות באמצעות מונה מילים פשוט!

המשימה שלך היא לממש תוכנית שסופרת כמה פעמים כל מילה מופיעה ברשימת מילים.

דרישות:

  1. השלם את הפונקציה addWord() שמוסיפה מילה למפת המונה
  2. השלם את הפונקציה getCount() שמחזירה את הספירה עבור מילה מסוימת
  3. השלם את הפונקציה 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)
}

כל השיעורים ביחידה יסודות

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