GoDasturchi
Methods on the Limiter

Methods on the Limiter

Limiter ustidagi metodlar

The Rate Limiter darsida faqat ma'lumotni saqlaydigan struct yaratdingiz. Endi unga xatti-harakat qo'shamiz — mijozning joriy sonini o'qish va uni qayta boshlash (reset qilish) uchun metodlar. Bu Pointers & Memory kursidagi "struct ustidagi metodlar orqali holatni boshqarish" g'oyasining davomi.

example.go
func (l *RateLimiter) Count(id string) int {
    return l.counts[id]
}

func (l *RateLimiter) Reset(id string) {
    delete(l.counts, id)
}

Count — Go Basics kursida ko'rgan map'dan o'qish andazasi: mavjud bo'lmagan kalit uchun intning nol qiymati (0) avtomatik qaytadi, alohida tekshirish shart emas. Reset esa deletedan foydalanadi — mijozning hisoblagichini butunlay olib tashlaydi, shunda keyingi Count chaqiruvi yana 0dan boshlanadi.

>_ Exercise

RateLimiter uchun Count(id string) int metodini yozing — mijozning joriy so'rovlar sonini qaytaradi. Reset(id string) metodini yozing — mijozning hisoblagichini butunlay olib tashlaydi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Count mavjud bo'lmagan kalit uchun map'ning nol qiymatidan foydalanadi, Reset esa delete bilan kalitni butunlay olib tashlaydi. Ikkalasi ham struct holatini metodlar orqali boshqarishning tabiiy usuli.

NEXT UP

Allow or Deny

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Methods on the Limiter

Limiter ustidagi metodlar

The Rate Limiter darsida faqat ma'lumotni saqlaydigan struct yaratdingiz. Endi unga xatti-harakat qo'shamiz — mijozning joriy sonini o'qish va uni qayta boshlash (reset qilish) uchun metodlar. Bu Pointers & Memory kursidagi "struct ustidagi metodlar orqali holatni boshqarish" g'oyasining davomi.

example.go
func (l *RateLimiter) Count(id string) int {
    return l.counts[id]
}

func (l *RateLimiter) Reset(id string) {
    delete(l.counts, id)
}

Count — Go Basics kursida ko'rgan map'dan o'qish andazasi: mavjud bo'lmagan kalit uchun intning nol qiymati (0) avtomatik qaytadi, alohida tekshirish shart emas. Reset esa deletedan foydalanadi — mijozning hisoblagichini butunlay olib tashlaydi, shunda keyingi Count chaqiruvi yana 0dan boshlanadi.

>_ Exercise

RateLimiter uchun Count(id string) int metodini yozing — mijozning joriy so'rovlar sonini qaytaradi. Reset(id string) metodini yozing — mijozning hisoblagichini butunlay olib tashlaydi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Count mavjud bo'lmagan kalit uchun map'ning nol qiymatidan foydalanadi, Reset esa delete bilan kalitni butunlay olib tashlaydi. Ikkalasi ham struct holatini metodlar orqali boshqarishning tabiiy usuli.

NEXT UP

Allow or Deny