Ce face bytes.Contains
bytes.Contains(b, subslice) spune dacă secvența subslice apare în b. bytes.TrimSpace(s) scoate spațiile albe de la capete. bytes.ToUpper(s) returnează o copie cu literele mari, corect și pentru diacritice (octeții sunt interpretați ca UTF-8).
Funcționează exact ca perechile lor din strings (Contains, TrimSpace, ToUpper), dar primesc și returnează []byte. Există și bytes.Index, bytes.HasPrefix, bytes.ReplaceAll, bytes.Fields, bytes.ToLower și celelalte.
Atenție: TrimSpace returnează o bucată din același slice (fără copiere), deci modificarea rezultatului modifică și originalul. ToUpper returnează întotdeauna o copie nouă.
Parametri
| Parametru | Descriere |
|---|---|
b / s |
Slice-ul de octeți. |
subslice |
La Contains: secvența căutată. |
Ce returnează
Contains: bool. TrimSpace și ToUpper: un []byte.
Exemple
Exemplul 1: Prelucrarea unui rând citit ca octeți
package main
import (
"bytes"
"fmt"
)
func main() {
rand := []byte(" eroare: disc plin în /home/ana \r\n")
curat := bytes.TrimSpace(rand)
fmt.Printf("%q\n", curat)
fmt.Println("e eroare?", bytes.Contains(curat, []byte("eroare")))
fmt.Println(string(bytes.ToUpper(curat)))
}
Rezultat
"eroare: disc plin în /home/ana"
e eroare? true
EROARE: DISC PLIN ÎN /HOME/ANA
Exemplul 2: TrimSpace împarte memoria, ToUpper nu
package main
import (
"bytes"
"fmt"
)
func main() {
original := []byte(" ana ")
t := bytes.TrimSpace(original)
t[0] = 'A'
fmt.Printf("%q\n", original)
u := bytes.ToUpper(original)
u[2] = 'x'
fmt.Printf("%q %q\n", original, u)
}
Rezultat
" Ana "
" Ana " " xNA "
Greșeli frecvente
- Transformi datele în
stringdoar ca să foloseștistrings.Containsși apoi înapoi în[]byte. Fiecare conversie copiază datele; folosește direct funcțiile dinbytes. - Modifici rezultatul lui
TrimSpacecrezând că este o copie: schimbi și slice-ul inițial.
Comenzi înrudite
bytes.Equal: Equal verifică dacă două slice-uri de octeți au același conținut; Compare le ordonează și dă -1, 0 sau 1.bytes.Split: Split împarte un []byte după un separator în mai multe slice-uri; Join le lipește la loc cu un separator.strings.Contains: Verifică dacă un text conține un alt text, unul dintre niște caractere, un caracter anume sau un caracter care respectă o condiție.strings.TrimSpace: Scoate spațiile albe (spații, tab, rânduri noi) de la începutul și sfârșitul textului.strings.ToUpper: Returnează textul scris cu litere mari (ToUpper) sau mici (ToLower), inclusiv diacriticele.