Tema
/
Struktūrinis programavimas GO
Pamoka 7 / 14 Eilutės (tekstas) ~50 min
📖 Teorija

Tekstas: Sprintf ir strings funkcijos

Iki šiol tekstą tik saugojom (Title string) ir spausdinom. Dabar išmoksim su juo dirbti — nes tikra programa nuolat formuoja, lygina ir tvarko tekstą.

Formatavimas su fmt.Sprintf. Println spausdina; Sprintf tą patį grąžina kaip eilutę, kad galėtum ją saugoti ar toliau naudoti:

line := fmt.Sprintf("Knyga: %s (%d psl.)", it.Title, it.Pages)
// line == "Knyga: The Go Programming Language (380 psl.)"

Naudingiausi „veiksneliai" (verbs): %s — eilutė, %d — sveikas skaičius, %v — bet kokia reikšmė, %.1f — realusis su vienu skaitmeniu, %q — eilutė kabutėse. O lygiavimui: %-30s — palieka tekstą kairėje, užpildo iki 30 stulpelių (kad sąrašo eilutės susilygiuotų).

Dažniausios strings funkcijos (importuok "strings"):

strings.ToLower("Go")            // "go"
strings.Contains(t, "prog")      // ar yra poeilutė?
strings.HasPrefix(t, "The ")     // ar prasideda...?
strings.TrimSpace("  labas \n")  // "labas" — nuima tarpus/naujas eilutes
strings.ReplaceAll(t, " ", "-")  // pakeičia visus tarpus brūkšniais
strings.Split("a,b,c", ",")      // []string{"a", "b", "c"}
strings.Join([]string{"a","b"}, ", ")  // "a, b"

Palyginimas. Paprastas == lygina tiksliai (skiria didžiąsias/mažąsias). Jei nori nejautraus registrui palyginimo — strings.EqualFold("Go", "go") grąžina true.

Šiuos įrankius iškart pritaikysim: Sprintf — tvarkingam įrašo atvaizdavimui, Split/TrimSpace — vartotojo įvesčiai sutvarkyti. Bet pirma — spąstai, dėl kurių len gali tave apgauti.