Salt la conținutul principal
Modulul 1 · Lecția 5 din 55/50 în curs~10 min
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

Go
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

VerbCe imprimăExemplu
%v„valoare implicită” — funcționează pe orice tip{Ada 36}
%+vca %v dar cu nume de câmpuri în structs{Name:Ada Age:36}
%#vReprezentarea „Go-sintax” a valoriimain.User{Name:"Ada", Age:36}
%Ttipul valoriifloat64
%dîntreg în baza 1042
%fplutire3.140000
%.2ffloat cu 2 zecimale3.14
%sșirAda
%qșir „quoted” (cu ghilimele și escape)"Ada\n"
%tbooltrue
%xhexazecimal (minuscule)2a
%bbinar101010
Go
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) // float64

Sprintf: construirea șirurilor de caractere fără a le imprima

Aceeași interfață ca Printf, dar rezultatul vă este returnat ca string:

Go
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):

Go
if _, err := os.Open("missing"); err != nil {
    return fmt.Errorf("apertura config: %w", err)
}

Rândul tău

Exercițiu#go.m1.l5.e1
Încercări: 0Se încarcă…

Tipăriți șirul „ciao mondo” folosind fmt.Println.

Se încarcă editorul...
Afișează indiciu

`fmt.Println` preia un șir și adaugă linia nouă în sine.

Soluție disponibilă după 3 încercări

Exercițiu#go.m1.l5.e2
Încercări: 0Se încarcă…

Utilizați fmt.Printf pentru a imprima „eta=36” urmat de o nouă linie, folosind verbul %d pentru întreg.

Se încarcă editorul...
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

Quiz#go.m1.l5.e3
Gata

Care verb imprimă TIPUL dinamic al unei valori?

Go
fmt.Printf("?\n", 3.14)
Opțiuni de răspuns

Recapitulare

  • Print/Println/Printf diferă în spații și linii noi.
  • %v este wildcard-ul care funcționează pe orice tip; %+v afișează numele câmpurilor.
  • %T tipărește tipul (util pentru depanare rapidă).
  • Sprintf construiește șiruri de caractere; Errorf generează erori cu împachetare (%w).
  • Printf NU adaugă o linie nouă: scrieți-o singur în șirul de format.