Ce face strconv.AppendInt
Funcțiile Append* fac același lucru ca FormatInt, FormatUint, FormatFloat și FormatBool, dar în loc să returneze un string nou, adaugă caracterele la un slice []byte existent și returnează slice-ul mărit (ca append).
Sunt folosite în cod care trebuie să fie rapid (scrierea de jurnale, protocoale, fișiere mari): poți refolosi același buffer la nesfârșit, fără alocări. Pentru programe obișnuite, strconv.Itoa sau fmt.Sprintf sunt suficiente.
Parametri
| Parametru | Descriere |
|---|---|
dst |
Slice-ul la care se adaugă (poate fi nil). |
i / f / b |
Valoarea de scris. |
base, fmt, prec, bitSize |
Aceleași ca la FormatInt și FormatFloat. |
Ce returnează
Slice-ul cu caracterele adăugate. Folosește valoarea returnată: buf = strconv.AppendInt(buf, …).
Exemple
Exemplul 1: Un rând de jurnal construit din bucăți
package main
import (
"fmt"
"strconv"
)
func main() {
buf := []byte("comanda=")
buf = strconv.AppendInt(buf, 1042, 10)
buf = append(buf, " total="...)
buf = strconv.AppendFloat(buf, 149.9, 'f', 2, 64)
buf = append(buf, " platita="...)
buf = strconv.AppendBool(buf, true)
buf = append(buf, " cod="...)
buf = strconv.AppendUint(buf, 255, 16)
fmt.Println(string(buf))
}
Rezultat
comanda=1042 total=149.90 platita=true cod=ff
Exemplul 2: Refolosirea bufferului în buclă
package main
import (
"fmt"
"strconv"
)
func main() {
buf := make([]byte, 0, 32)
for _, nota := range []int64{7, 9, 10} {
buf = buf[:0]
buf = append(buf, "nota: "...)
buf = strconv.AppendInt(buf, nota, 10)
fmt.Println(string(buf))
}
}
Rezultat
nota: 7
nota: 9
nota: 10
Greșeli frecvente
- Nu salvezi rezultatul:
strconv.AppendInt(buf, 5, 10)singur nu modificăbufîn exterior.
Comenzi înrudite
strconv.FormatInt: Transformă un întreg în text, în baza dorită (2–36): binar, octal, zecimal, hexazecimal.strconv.FormatFloat: Transformă un număr cu zecimale în text, cu formatul (‘f’, ‘e’, ‘g’) și numărul de zecimale dorite.strconv.AppendQuote: Variantele Append ale funcțiilor Quote și QuoteRune: adaugă textul sau caracterul între ghilimele la un []byte.fmt.Appendf: Formatează valorile ca Sprint, Sprintf sau Sprintln, dar adaugă rezultatul la un []byte existent.bytes.Buffer.Len: Len dă octeții necitiți, Cap capacitatea, Grow rezervă loc, Available spațiul liber, iar AvailableBuffer un slice pentru scriere directă.