3 / 4
Pertvarkyk main.go — duomenys išgyvena restartą
Trečiasis (ir paskutinis) etapas. Meniu griaučiai vėl lieka tie patys — keičiasi programos pradžia, pabaiga ir įvesties skaitymas:
Itemlaukai gauna JSON žymas (json:"title"ir t. t.).- Naujos funkcijos
saveItemsirloadItems— lygiai tokios, kaip 2 žingsnyje: JSON peros.WriteFile/os.ReadFile, trūkstamas failas → tuščia lentyna. - Paleidus:
items, err := loadItems()— jei įkelti nepavyko, pranešam ir startuojam su tuščiu sąrašu (bet nelūžtam). - Išeinant (
q):saveItems(items)su klaidos patikra — tik tada „Saved. Bye!". - Premija: 7 pamokoje žadėtas tikras eilučių skaitymas —
bufio.NewReader(os.Stdin)ir mažas helperisreadLine. VisiScanlnišeina į pensiją, o „The Go Book" pagaliau telpa į pavadinimą su tarpais.
Patikrink — trys paleidimai iš eilės:
# 1 paleidimas (items.json dar nėra):
> 2
No items yet. ← tuščia lentyna, o NE klaida
> q
Saved. Bye!
# 2 paleidimas — pridėk „The Go Book" 380 ir „Dune" 412, tada q.
# 3 paleidimas:
> 2
1. Book: The Go Book | pages: 0/380 | read: false
2. Book: Dune | pages: 0/412 | read: false
Duomenys išgyveno restartą — atsidaryk items.json ir pamatysi savo lentyną kaip tekstą.
Patarimas. Palygink savo
main.gosu finalinio projekto pavyzdžiu (11 pamoka):saveItems,loadItems,readLine— jau turi visus tris, tokius pačius. Finale jie tik persikels į atskirąstorage.gofailą.