Ce face io.WriteString
io.WriteString scrie s în w. Dacă w are o metodă WriteString (cum au *os.File, *bytes.Buffer, *strings.Builder, *bufio.Writer), o folosește direct, fără să copieze textul într-un []byte. Altfel apelează w.Write([]byte(s)).
Este modul simplu de a scrie text într-un Writer oarecare, când nu ai nevoie de formatare. Cu formatare, folosește fmt.Fprintf.
Parametri
| Parametru | Descriere |
|---|---|
w |
Destinația. |
s |
Textul de scris. |
Ce returnează
Numărul de octeți scriși și eroarea, ca la Write.
Exemple
Exemplul 1: Scriere în destinații diferite
package main
import (
"fmt"
"io"
"os"
"strings"
)
func main() {
io.WriteString(os.Stdout, "pe ecran\n")
var sb strings.Builder
io.WriteString(&sb, "în memorie")
fmt.Println(sb.String())
f, _ := os.Create("nota.txt")
n, err := io.WriteString(f, "în fișier\n")
f.Close()
fmt.Println("octeți:", n, "eroare:", err)
}
Rezultat
pe ecran
în memorie
octeți: 12 eroare: <nil>
Exemplul 2: Într-o funcție generică
package main
import (
"io"
"os"
)
func scrieTabel(w io.Writer, randuri [][2]string) error {
for _, r := range randuri {
if _, err := io.WriteString(w, r[0]+"\t"+r[1]+"\n"); err != nil {
return err
}
}
return nil
}
func main() {
scrieTabel(os.Stdout, [][2]string{{"Ana", "Iași"}, {"Mihai", "Cluj"}, {"Ioana", "Brașov"}})
}
Rezultat
Ana Iași
Mihai Cluj
Ioana Brașov
Greșeli frecvente
- Scrii
w.Write([]byte(s))peste tot. Funcționează, dario.WriteStringpoate evita copierea textului.
Comenzi înrudite
io.Writer: Interfața pentru orice destinație în care se pot scrie octeți: fișiere, ecran, buffer-e, răspunsuri HTTP.os.File.Write: Scrie octeți (Write) sau text (WriteString) în fișier, la poziția curentă.bufio.Writer.WriteString: WriteString adaugă un text în buffer; WriteRune adaugă un singur caracter Unicode, codat UTF-8.