Menu
Coddy logo textTech

Özet - Anahtar-Değer Depolama

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 93 / 109.

challenge icon

Görev

Kolay

Basit bir kelime sayacıyla map kullanma pratiği yapalım!

Göreviniz, bir kelime listesindeki her kelimenin kaç kez göründüğünü sayan bir program uygulamaktır.

Gereksinimler:

  1. Bir kelimeyi sayaç map'ine ekleyen addWord() işlevini tamamlayın
  2. Belirli bir kelimenin sayısını döndüren getCount() işlevini tamamlayın
  3. Bir kelimeyi sayaçtan kaldıran removeWord() işlevini tamamlayın

Bu, map'leri anahtar-değer depolama alanı olarak nasıl kullanacağınıza dair basit bir tekrardır.

Not: Tutarlılık sağlamak için çıktı, kelime sayılarını alfabetik sırayla gösterecektir.

Kendin dene

package main

import (
	"fmt"
	"sort"
)

// addWord kelimeyi sayaç eşlemine (map) ekler
func addWord(counter map[string]int, word string) {
	// Kodunuz buraya
}

// getCount belirli bir kelimenin sayısını döndürür
func getCount(counter map[string]int, word string) int {
	// Kodunuz buraya
	return 0
}

// removeWord bir kelimeyi sayaçtan kaldırır
// Kelime bulunduysa ve kaldırıldıysa true döndürür
func removeWord(counter map[string]int, word string) bool {
	// Kodunuz buraya
	return false
}

// printWordCounts kelime sayılarını alfabetik sırayla yazdırır
func printWordCounts(counter map[string]int) {
	// Eşlemdeki (map) tüm anahtarları (kelimeleri) al
	words := make([]string, 0, len(counter))
	for word := range counter {
		words = append(words, word)
	}
	
	// Kelimeleri alfabetik olarak sırala
	sort.Strings(words)
	
	// Her kelimeyi ve sayısını sıralı düzende yazdır
	for _, word := range words {
		fmt.Printf("%s: %d\n", word, counter[word])
	}
}

func main() {
	// Kelime sayacı eşlemini (map) başlat
	wordCounter := make(map[string]int)
	
	// Bazı kelimeler ekle
	words := []string{"apple", "banana", "apple", "orange", "banana", "apple"}
	for _, word := range words {
		addWord(wordCounter, word)
	}
	
	// Kelime sayılarını yazdır
	fmt.Println("Word counts:")
	printWordCounts(wordCounter)
	
	// Belirli kelimeler için sayıları al
	fmt.Printf("\nCount for 'apple': %d\n", getCount(wordCounter, "apple"))
	fmt.Printf("Count for 'grape': %d\n", getCount(wordCounter, "grape"))
	
	// Bir kelimeyi kaldır
	removed := removeWord(wordCounter, "banana")
	fmt.Printf("\nRemoved 'banana': %v\n", removed)
	
	// Mevcut olmayan bir kelimeyi kaldırmayı dene
	removed = removeWord(wordCounter, "grape")
	fmt.Printf("Removed 'grape': %v\n", removed)
	
	// Nihai kelime sayılarını yazdır
	fmt.Println("\nFinal word counts:")
	printWordCounts(wordCounter)
}

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi