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 vetsemnalează rezultatul ignorat). - Folosești
string(42)ca să obții"42". Conversiastring(int)dă caracterul cu codul 42 (*). Foloseștefmt.Sprintsaustrconv.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().