Tema
/
Struktūrinis programavimas GO
Pamoka 9 / 14 Žodynas (Go map) ~50 min
📖 Teorija

Namų darbas — map tavo programoje

TAVO programa: skaičiavimas ir žaibiška paieška su map.

Reikalavimai:

  1. Pridėk kategorijos tipo lauką į savo Item, tinkantį tavo temai — Category (knygos), Genre (filmai), Type (išlaidos), Muscle (treniruotės)… Klausk jo „Add" veiksme.
  2. Skaičiuok pagal tą lauką. Pridėk meniu veiksmą, kuris sukuria map[string]int su m[k]++ šablonu ir atspausdina kiekvienos grupės kiekį. Susitaikyk, kad spausdinimo tvarka atsitiktinė — nekovok su ja.
  3. 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.
  4. Skaityk įvestį su readLine, kad veiktų daugiažodžiai raktai, ir gofmt + veikiantis go 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.