Ce face strings.HasPrefix
strings.HasPrefix(s, prefix) spune dacă s începe cu prefix, iar strings.HasSuffix(s, suffix) dacă se termină cu suffix. Sunt folosite des pentru extensii de fișiere (.txt), adrese (https://), comenzi (/start) sau prefixe de telefon (+40).
Comparația este exactă, cu litere mari și mici. Un prefix sau sufix gol se potrivește cu orice text. Dacă vrei să și scoți prefixul, folosește strings.CutPrefix sau strings.TrimPrefix.
Parametri
| Parametru | Descriere |
|---|---|
s |
Textul verificat. |
prefix / suffix |
Începutul, respectiv sfârșitul căutat. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Filtrarea fișierelor după extensie
package main
import (
"fmt"
"strings"
)
func main() {
fisiere := []string{"note.txt", "poza.JPG", "raport.pdf", "lista.txt"}
for _, f := range fisiere {
if strings.HasSuffix(f, ".txt") {
fmt.Println("text:", f)
}
}
fmt.Println(strings.HasSuffix("poza.JPG", ".jpg"))
fmt.Println(strings.HasSuffix(strings.ToLower("poza.JPG"), ".jpg"))
}
Rezultat
text: note.txt
text: lista.txt
false
true
Exemplul 2: Numere de telefon și adrese
package main
import (
"fmt"
"strings"
)
func main() {
for _, tel := range []string{"+40 721 000 111", "0721000111", "+33 6 12 34"} {
fmt.Printf("%-16s românesc: %t\n", tel, strings.HasPrefix(tel, "+40") || strings.HasPrefix(tel, "07"))
}
url := "http://dexblog.ro"
if !strings.HasPrefix(url, "https://") {
fmt.Println("Adresa nu folosește HTTPS:", url)
}
}
Rezultat
+40 721 000 111 românesc: true
0721000111 românesc: true
+33 6 12 34 românesc: false
Adresa nu folosește HTTPS: http://dexblog.ro
Greșeli frecvente
- Verifici extensia cu
Contains(f, ".txt"). Și „note.txt.exe” conține „.txt”; foloseșteHasSuffix. - Uiți că literele mari contează: „POZA.JPG” nu se termină cu „.jpg”. Transformă întâi cu
strings.ToLower.
Comenzi înrudite
strings.CutPrefix: Scoate un prefix (CutPrefix) sau un sufix (CutSuffix) din text și spune dacă exista.strings.TrimPrefix: Scoate o singură dată un prefix (TrimPrefix) sau un sufix (TrimSuffix) exact, dacă textul îl are.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.