Lecții din modul (5/5)
Intrare/ieșire cu fmt
Pachetul fmt al bibliotecii standard este instrumentul dvs. principal pentru imprimare către
consola, formatarea șirurilor și citirea intrării. Daca ati folosit
printf în C te vei simți ca acasă, dar cu un plus de rafinament
datorită verbelor %v și %T.
Print, Println, Printf: trei funcții, trei comportamente
fmt.Print("ciao ", "mondo") // "ciao mondo" (niente newline finale)
fmt.Println("ciao", "mondo") // "ciao mondo\n" (newline + spazi tra argomenti)
fmt.Printf("eta=%d\n", 36) // "eta=36\n" (format string esplicita)Verbele pe care le vei folosi tot timpul
| Verb | Ce imprimă | Exemplu |
|---|---|---|
%v | „valoare implicită” — funcționează pe orice tip | {Ada 36} |
%+v | ca %v dar cu nume de câmpuri în structs | {Name:Ada Age:36} |
%#v | Reprezentarea „Go-sintax” a valorii | main.User{Name:"Ada", Age:36} |
%T | tipul valorii | float64 |
%d | întreg în baza 10 | 42 |
%f | plutire | 3.140000 |
%.2f | float cu 2 zecimale | 3.14 |
%s | șir | Ada |
%q | șir „quoted” (cu ghilimele și escape) | "Ada\n" |
%t | bool | true |
%x | hexazecimal (minuscule) | 2a |
%b | binar | 101010 |
u := struct{ Name string; Age int }{"Ada", 36}
fmt.Printf("%v\n", u) // {Ada 36}
fmt.Printf("%+v\n", u) // {Name:Ada Age:36}
fmt.Printf("%T\n", 3.14) // float64Sprintf: construirea șirurilor de caractere fără a le imprima
Aceeași interfață ca Printf, dar rezultatul vă este returnat ca
string:
msg := fmt.Sprintf("L'utente %s ha %d anni", "Ada", 36)
fmt.Println(msg) // L'utente Ada ha 36 anniÎl vei folosi în mod constant pentru a crea mesaje, jurnale și erori.
Errorf: șiruri de caractere + împachetare eroare
fmt.Errorf creează un error cu formatare în stil Printf. Cu
verb special %w puteți încheia o eroare existentă pentru a-i păstra
lanț (vom acoperi acest lucru în profunzime în modulul Interfețe):
if _, err := os.Open("missing"); err != nil {
return fmt.Errorf("apertura config: %w", err)
}Rândul tău
Tipăriți șirul „ciao mondo” folosind fmt.Println.
Afișează indiciu
`fmt.Println` preia un șir și adaugă linia nouă în sine.
Soluție disponibilă după 3 încercări
Utilizați fmt.Printf pentru a imprima „eta=36” urmat de o nouă linie, folosind verbul %d pentru întreg.
Afișează indiciu
`Printf` nu adaugă o linie nouă: trebuie să includeți `\\n` în șirul de format.
Soluție disponibilă după 3 încercări
Care verb imprimă TIPUL dinamic al unei valori?
fmt.Printf("?\n", 3.14)Recapitulare
Print/Println/Printfdiferă în spații și linii noi.%veste wildcard-ul care funcționează pe orice tip;%+vafișează numele câmpurilor.%Ttipărește tipul (util pentru depanare rapidă).Sprintfconstruiește șiruri de caractere;Errorfgenerează erori cu împachetare (%w).PrintfNU adaugă o linie nouă: scrieți-o singur în șirul de format.