Namų darbas — map tavo programoje
TAVO programa: skaičiavimas ir žaibiška paieška su map.
Reikalavimai:
- Pridėk kategorijos tipo lauką į savo
Item, tinkantį tavo temai —Category(knygos),Genre(filmai),Type(išlaidos),Muscle(treniruotės)… Klausk jo „Add" veiksme. - Skaičiuok pagal tą lauką. Pridėk meniu veiksmą, kuris sukuria
map[string]intsum[k]++šablonu ir atspausdina kiekvienos grupės kiekį. Susitaikyk, kad spausdinimo tvarka atsitiktinė — nekovok su ja. - Ieškok pagal raktą. Pridėk paiešką, kuri sukuria
map[string]Item(indeksą pagal pavadinimą) ir naudoja comma-ok idiomą (it, ok := index[key]), kad atspausdintų įrašą arba „Not found." — niekada tuščio. - Skaityk įvestį su
readLine, kad veiktų daugiažodžiai raktai, irgofmt+ veikiantisgo run.
Papildomai (norintiems daugiau): parodyk atsitiktinę tvarką tyčia — pereik per savo skaičių map, atspausdink kategorijas vienoje eilutėje, paleisk programą du kartus ir įklijuok abi eilutes. Jos turi skirtis. Tada vienu sakiniu paaiškink, kodėl tai teisingas Go veikimas, o ne klaida.
Ką pateikti: kodą + nuorašą, rodantį: (1) įrašus bent dviejose kategorijose, (2) skaičius pagal kategoriją, (3) vieną sėkmingą paiešką ir vieną „Not found."
Patarimas. Dabar turi tris būdus laikyti duomenis: struktūrą (vienas įrašas, laukai pagal vardą), sąrašą (daug įrašų, pagal vietą) ir map (reikšmės pagal raktą). Tikros programos maišo visus tris — sąrašas struktūrų, kurį dar indeksuoji su map, yra kasdienė forma. Kiti etapai remsis būtent tuo.