Struktūrinis programavimas
Pamoka 3 / 11 Funkcijos ~40 min
1 / 4 📖 Teorija

Kas yra funkcija

Pereitą pamoką pažadėjom: spausdinimo nustosime kartoti. Įrankis tam — funkcija: pavadintas kodo gabalas, kurį parašai kartą ir kvieti kiek nori kartų.

func formatItem(title string, pages int, read bool) string {
	return fmt.Sprintf("Book: %s | pages: %d | read: %v", title, pages, read)
}

Anatomija:

  • func + vardas — kaip kintamasis, tik saugo veiksmą, ne reikšmę.
  • Parametrai skliaustuose — įėjimai su tipais: title string, pages int, read bool.
  • Grąžinimo tipas po skliaustų — kas išeina: čia string.
  • return — atiduoda rezultatą kviečiančiajam.

Kviečiama taip: line := formatItem("Dune", 412, true) — parametrai užsipildo iš argumentų ta pačia tvarka.

Sritis (scope): parametrai ir viduje sukurti kintamieji gyvena tik tarp funkcijos { }. Išėjus iš funkcijos jų nebėra — todėl dvi funkcijos gali ramiai turėti kintamąjį vienodu vardu.

Kurso taisyklė nuo šiandien: main beveik nieko nedaro pati — tik kviečia funkcijas. Logika gyvena funkcijose su aiškiais vardais.