Project: Music Catalog (Search)
Loyiha: Musiqa katalogi (Qidiruv)
prices := map[string]float64{"apple": 1.20, "banana": 0.50, "cherry": 2.50}
var expensive []string
for name, price := range prices {
if price >= 2.0 {
expensive = append(expensive, name)
}
}
// expensive == ["cherry"]Slicelar, maplar yoki ichma-ich ma'lumotlar bilan ishlashingizdan qat'i nazar, filtrlash va sanash bir xil andazaga amal qiladi. Bo'sh natijadan boshlang. To'plam bo'ylab yuring. Shartingizni tekshiring. Mos kelganlarini qo'shing.
Sanash — map akkumulyatori bilan bir xil g'oya. Ma'lumot bo'ylab yuring, har bir kategoriya uchun yozuvni oshiring. intning nol qiymati 0, shuning uchun counts[key]++ hech qanday sozlamasiz ko'rilmagan kalitlarda ham ishlaydi.
Bu mashq ikkala andazani ichma-ich ma'lumot bilan birlashtiradi. Kutubxonangiz albomlarni, albomlar esa qo'shiqlarni saqlaydi. Janrlarni sanash uchun albomlar bo'ylab, so'ng har bir albomning qo'shiqlari bo'ylab yurasiz. Ikkita sikl, bitta map.
>_ Exercise
Kutubxonangiz albomlarni saqlashi va olishi mumkin. Endi uni qidiriladigan qiling.
Library ustida quyidagi metodlarni yozing:
- •1.
(lib Library) SearchByArtist(artist string) []Album— berilgan ijrochining barcha albomlarini qaytaradi - •2.
(lib Library) GenreCount() map[string]int— barcha albomlar bo'yicha har bir janrda nechta qo'shiq borligini sanaydi - •3.
(lib Library) TotalSongs() int— barcha albomlardagi qo'shiqlarning umumiy sonini qaytaradi
Misollar:
- •2 ta Beatles albomi va 1 ta Michael Jackson albomiga ega kutubxonada:
lib.SearchByArtist("The Beatles")2 ta albomli slice qaytaradi - •3 ta rok va 2 ta pop qo'shig'iga ega kutubxonada:
lib.GenreCount()map[string]int{"rock": 3, "pop": 2}qaytaradi - •2 va 3 qo'shiqli albomlarga ega kutubxonada:
lib.TotalSongs()5 qaytaradi
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Filtrlash va sanash andazalari istalgan to'plamda ishlaydi. Ularni ichma-ich qilish qo'shiqlarni o'z ichiga olgan albomlar kabi ierarxik ma'lumotlarni boshqaradi.
$ go run main.go
Kodingizni ishga tushiring