Struktūrinis programavimas
Pamoka 6 / 11 Duomenų tipai giliau ~35 min
3 / 4

Pertvarkyk main.go — skaitinis laukas su patikra

Sujungiam abu žingsnius į programą — meniu gauna du naujus punktus.

Kas naujo, lyginant su 5 pamokos versija:

  • Item gavo lauką PagesRead int (perskaityti puslapiai).
  • 3) Set pages read — pilnas 1 žingsnio šablonas: ScanlnAtoi → patikra (err != nil || n < 0 || n > it.Pages) → arba išsaugom, arba mandagiai atsisakom.
  • 4) ProgressprogressPercent funkcija su teisinga float64 dalyba ir apsauga nuo dalybos iš nulio.
  • formatItem dabar rodo 190/380 formą.

Patikrink — suvesk 4, 3 + 190, 4, 3 + abc, 1, q:

> 4
Progress: 0.0%
> 3
Pages read: 190
Saved: 190 pages.
> 4
Progress: 50.0%
> 3
Pages read: abc
Not a valid number of pages.
> 1
Book: The Go Programming Language | pages: 190/380 | read: false
> q
Bye!

Esmė matosi antrame 4: 50.0%, ne 0% — dalyba vyksta float64 pasaulyje.

Patarimas. Pakeisk progressPercent viduje float64(it.PagesRead) / float64(it.Pages) į it.PagesRead / it.Pages ir paleisk dar kartą — pamatyk 0% savo akimis. Sugadinti ir pataisyti — geriausias būdas įsiminti.