fmt.Sprint în Go

Transformă valorile în text și îl returnează, fără să afișeze nimic; Sprintln adaugă spații și rând nou.

Sintaxă
func Sprint(a ...any) string
func Sprintln(a ...any) string

Ce face fmt.Sprint

fmt.Sprint și fmt.Sprintln sunt perechile lui Print și Println care returnează textul în loc să-l afișeze. Litera S vine de la string.

Regulile de spațiere sunt aceleași: Sprint pune spațiu între două valori doar dacă niciuna nu este text, iar Sprintln pune mereu spațiu între valori și adaugă \n la final.

Sunt utile când vrei să transformi rapid orice valoare în text: fmt.Sprint(42) dă "42". Pentru un singur număr întreg, strconv.Itoa este mai rapid.

Parametri

Parametru Descriere
a ...any Valorile de transformat în text.

Ce returnează

Textul obținut (string).

Exemple

Exemplul 1: Diferența dintre Sprint și Sprintln

%q arată textul exact, cu spațiile și rândul nou vizibile.

package main

import "fmt"

func main() {
	a := fmt.Sprint("Ana", "Maria", 10, 20)
	b := fmt.Sprintln("Ana", "Maria", 10, 20)
	fmt.Printf("%q\n", a)
	fmt.Printf("%q\n", b)
}

Rezultat

"AnaMaria10 20"
"Ana Maria 10 20\n"

Exemplul 2: Orice valoare devine text

package main

import "fmt"

func main() {
	note := []int{9, 10, 8}
	text := fmt.Sprint(note)
	eticheta := "Notele Anei: " + text
	fmt.Println(eticheta)
	fmt.Println(len(fmt.Sprint(3.14)), "caractere în", fmt.Sprint(3.14))
}

Rezultat

Notele Anei: [9 10 8]
4 caractere în 3.14

Greșeli frecvente

  • Apelezi fmt.Sprint(x) și nu folosești rezultatul. Nu se afișează nimic: Sprint doar returnează textul (go vet semnalează rezultatul ignorat).
  • Folosești string(42) ca să obții "42". Conversia string(int) dă caracterul cu codul 42 (*). Folosește fmt.Sprint sau strconv.Itoa.

Comenzi înrudite

  • fmt.Println: Afișează valorile pe ecran: Println pune spații între ele și trece la rând nou, Print nu.
  • fmt.Printf: Afișează text formatat cu %d, %s, %.2f etc.; Sprintf returnează textul, Fprintf îl scrie într-un fișier sau alt Writer.
  • strconv.Atoi: Atoi transformă un text în număr întreg (int) și returnează eroare dacă nu se poate; Itoa face invers.
  • strings.Builder: Construiește eficient un text din multe bucăți: adaugi cu WriteString, WriteByte, WriteRune sau Write și obții rezultatul cu String().