strings.TrimFunc în Go

Scoate de la capete caracterele pentru care funcția dată returnează true (la ambele capete, la început sau la sfârșit).

Sintaxă
func TrimFunc(s string, f func(rune) bool) string
func TrimLeftFunc(s string, f func(rune) bool) string
func TrimRightFunc(s string, f func(rune) bool) string

Ce face strings.TrimFunc

strings.TrimFunc(s, f) elimină de la ambele capete caracterele pentru care f returnează true, până la primul caracter care nu respectă condiția. TrimLeftFunc lucrează doar la început, TrimRightFunc doar la sfârșit.

Sunt utile când setul de caractere este descris mai ușor printr-o regulă: „tot ce nu este literă”, „cifrele”, „semnele de punctuație” (unicode.IsPunct).

Parametri

Parametru Descriere
s Textul.
f Condiția: true pentru caracterele de eliminat.

Ce returnează

Textul curățat la capete.

Exemple

Exemplul 1: Curățarea cuvintelor de punctuație

package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	for _, c := range strings.Fields("«Bună», ziua... (Ana)!") {
		fmt.Printf("%-10q -> %q\n", c, strings.TrimFunc(c, unicode.IsPunct))
	}
}

Rezultat

"«Bună»,"  -> "Bună"
"ziua..."  -> "ziua"
"(Ana)!"   -> "Ana"

Exemplul 2: Doar la un capăt

package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	cod := "0042AB-77"
	fmt.Println(strings.TrimLeftFunc(cod, func(r rune) bool { return r == '0' }))
	fmt.Println(strings.TrimRightFunc(cod, unicode.IsDigit))
	fmt.Println(strings.TrimFunc(cod, unicode.IsDigit))
}

Rezultat

42AB-77
0042AB-
AB-

Greșeli frecvente

  • Te aștepți ca TrimFunc să scoată caracterele și din mijloc. Lucrează doar la capete; pentru tot textul folosește strings.Map sau strings.FieldsFunc.

Comenzi înrudite

  • strings.Trim: Scoate de la capete orice caracter din setul dat: Trim la ambele capete, TrimLeft doar la început, TrimRight doar la sfârșit.
  • strings.TrimSpace: Scoate spațiile albe (spații, tab, rânduri noi) de la începutul și sfârșitul textului.
  • strings.IndexAny: Poziția primului sau ultimului caracter dintr-un set (IndexAny) ori care respectă o condiție (IndexFunc); -1 dacă nu există.
  • unicode.IsLetter: Verifică tipul unui caracter: literă, cifră, număr, spațiu alb sau semn de punctuație, după regulile Unicode.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: strings.TrimFunc

Ai o nelămurire despre utilizarea comenzii strings.TrimFunc sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.