Ce face strconv.AppendQuote
Fiecare funcție Quote… are o pereche AppendQuote… care adaugă rezultatul la sfârșitul unui []byte și returnează slice-ul mărit. Regulile de scriere sunt identice: AppendQuote ca Quote, AppendQuoteToASCII ca QuoteToASCII, AppendQuoteRune ca QuoteRune și așa mai departe.
Ca toate funcțiile Append*, sunt utile când construiești un rezultat mare într-un singur buffer, fără texte intermediare.
Parametri
| Parametru | Descriere |
|---|---|
dst |
Slice-ul la care se adaugă. |
s / r |
Textul sau caracterul de pus între ghilimele. |
Ce returnează
Slice-ul mărit.
Exemple
Exemplul 1: Toate cele șase variante în același buffer
package main
import (
"fmt"
"strconv"
)
func main() {
var b []byte
b = strconv.AppendQuote(b, "Iași\n")
b = append(b, ' ')
b = strconv.AppendQuoteToASCII(b, "Iași")
b = append(b, ' ')
b = strconv.AppendQuoteToGraphic(b, "10\u00a0lei")
b = append(b, '\n')
b = strconv.AppendQuoteRune(b, 'ț')
b = append(b, ' ')
b = strconv.AppendQuoteRuneToASCII(b, 'ț')
b = append(b, ' ')
b = strconv.AppendQuoteRuneToGraphic(b, '\t')
fmt.Println(string(b))
}
Rezultat
"Iași\n" "Ia\u0219i" "10 lei"
'ț' '\u021b' '\t'
Exemplul 2: Un rând cheie=valoare cu valori citate
package main
import (
"fmt"
"strconv"
)
func main() {
date := [][2]string{{"nume", "Ana Pop"}, {"oras", "Iași"}, {"nota", "10"}}
buf := make([]byte, 0, 64)
for i, kv := range date {
if i > 0 {
buf = append(buf, ' ')
}
buf = append(buf, kv[0]...)
buf = append(buf, '=')
buf = strconv.AppendQuote(buf, kv[1])
}
fmt.Println(string(buf))
}
Rezultat
nume="Ana Pop" oras="Iași" nota="10"
Greșeli frecvente
- Uiți să salvezi rezultatul în variabilă (
b = strconv.AppendQuote(b, s)).
Comenzi înrudite
strconv.Quote: Pune textul între ghilimele, ca în codul Go, și scrie caracterele speciale ca secvențe \n, \t, \u…strconv.QuoteRune: Scrie un caracter (rune) între apostrofuri, ca în codul Go: ‘ș’, ‘\n’, ‘\u0219’.strconv.AppendInt: Adaugă un număr sau un bool, scris ca text, la sfârșitul unui []byte, fără să creeze un text intermediar.