GoDasturchi
Client Registry

Client Registry

Mijozlar reyestri

Rate limiter qurishdan oldin, avval kimning so'rov yuborayotganini bilish kerak. Eng sodda yechim — Composite Types kursidagi map'lar bilan tanish bo'lgan naqsh: ko'rilgan mijoz identifikatorlarini saqlaydigan to'plam (set). Go'da alohida set turi yo'q, shuning uchun bu odatda map[string]bool bilan modellashtiriladi.

example.go
type Registry struct {
    clients map[string]bool
}

func NewRegistry() *Registry {
    return &Registry{clients: make(map[string]bool)}
}

NewRegistry — Pointers & Memory kursidagi konstruktor andazasi: ichki map'ni make bilan tayyor holda qaytaradi, shunda chaqiruvchi hech qachon ishga tushirilmagan nil map bilan ishlamaydi.

>_ Exercise

clients map[string]bool maydoniga ega Registry struct'ini yozing. NewRegistry() *Registry konstruktorini yozing (ichki map'ni ishga tushirsin). Add(id string) metodini yozing — mijozni reyestrga qo'shadi. Contains(id string) bool metodini yozing — mijoz reyestrda bor-yo'qligini qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

map[string]bool — Go'da "to'plam" (set) modellashtirish uchun standart andaza: kalitning o'zi ma'lumot, qiymat esa shunchaki "bor" belgisi. Konstruktor ichki map'ni doim make bilan tayyorlab qaytarishi kerak.

NEXT UP

Input Cleanup

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Client Registry

Mijozlar reyestri

Rate limiter qurishdan oldin, avval kimning so'rov yuborayotganini bilish kerak. Eng sodda yechim — Composite Types kursidagi map'lar bilan tanish bo'lgan naqsh: ko'rilgan mijoz identifikatorlarini saqlaydigan to'plam (set). Go'da alohida set turi yo'q, shuning uchun bu odatda map[string]bool bilan modellashtiriladi.

example.go
type Registry struct {
    clients map[string]bool
}

func NewRegistry() *Registry {
    return &Registry{clients: make(map[string]bool)}
}

NewRegistry — Pointers & Memory kursidagi konstruktor andazasi: ichki map'ni make bilan tayyor holda qaytaradi, shunda chaqiruvchi hech qachon ishga tushirilmagan nil map bilan ishlamaydi.

>_ Exercise

clients map[string]bool maydoniga ega Registry struct'ini yozing. NewRegistry() *Registry konstruktorini yozing (ichki map'ni ishga tushirsin). Add(id string) metodini yozing — mijozni reyestrga qo'shadi. Contains(id string) bool metodini yozing — mijoz reyestrda bor-yo'qligini qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

map[string]bool — Go'da "to'plam" (set) modellashtirish uchun standart andaza: kalitning o'zi ma'lumot, qiymat esa shunchaki "bor" belgisi. Konstruktor ichki map'ni doim make bilan tayyorlab qaytarishi kerak.

NEXT UP

Input Cleanup