Counting Requests
So'rovlarni sanash
Endi mijozlarni tekshirib, tozalab bo'ldik — keyingi qadam har bir mijoz nechta so'rov yuborganini kuzatish, chunki rate limiting aynan shu sonni chegaralash haqida. Bu — Count Everything darsidagi counts[key]++ andazasining aynan o'zi, endi struct ichiga o'ralgan holda:
type Counter struct {
counts map[string]int
}
func (c *Counter) Increment(id string) int {
c.counts[id]++
return c.counts[id]
}Increment ikkita ishni birdaniga qiladi: hisoblagichni oshiradi va yangi qiymatni qaytaradi — chaqiruvchi alohida Get chaqirmasdan, "bu nechinchi so'rov edi?" degan savolga darhol javob oladi.
>_ Exercise
counts map[string]int maydoniga ega Counter struct'ini va NewCounter() *Counter konstruktorini yozing. Increment(id string) int metodini yozing — u shu mijozning hisoblagichini bittaga oshirib, yangi qiymatni qaytaradi.
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
map[string]int bilan har bir mijoz uchun mustaqil hisoblagich saqlash mumkin. Increment oshirish va o'qishni bitta metodda birlashtirib, chaqiruvchiga qulaylik yaratadi.
NEXT UP
Formatting Results
$ go run main.go
Kodingizni ishga tushiring