Ce face unicode.IsUpper
unicode.IsUpper(r) returnează true pentru literele mari (A, Ș, Ț, Ж), iar unicode.IsLower(r) pentru literele mici. Cifrele, spațiile și semnele nu sunt nici mari, nici mici: ambele funcții returnează false.
Sunt utile pentru verificarea parolelor, pentru detectarea textelor scrise numai cu majuscule sau pentru împărțirea numelor scrise camelCase.
Parametri
| Parametru | Descriere |
|---|---|
r |
Caracterul verificat. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Verificarea unei parole
package main
import (
"fmt"
"unicode"
)
func main() {
for _, parola := range []string{"Șoarece2026", "soarece", "SOARECE"} {
mare, mica := false, false
for _, r := range parola {
if unicode.IsUpper(r) {
mare = true
}
if unicode.IsLower(r) {
mica = true
}
}
fmt.Printf("%-12s majusculă: %-5t literă mică: %t\n", parola, mare, mica)
}
fmt.Println(unicode.IsUpper('7'), unicode.IsLower('7'))
}
Rezultat
Șoarece2026 majusculă: true literă mică: true
soarece majusculă: false literă mică: true
SOARECE majusculă: true literă mică: false
false false
Exemplul 2: Împărțirea unui nume camelCase
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
nume := "numeComplet"
var sb strings.Builder
for _, r := range nume {
if unicode.IsUpper(r) {
sb.WriteRune('_')
r = unicode.ToLower(r)
}
sb.WriteRune(r)
}
fmt.Println(sb.String())
}
Rezultat
nume_complet
Greșeli frecvente
- Crezi că
!IsUpper(r)înseamnă literă mică. Cifrele și semnele nu sunt mari, dar nici mici; foloseșteIsLower.
Comenzi înrudite
unicode.IsLetter: Verifică tipul unui caracter: literă, cifră, număr, spațiu alb sau semn de punctuație, după regulile Unicode.unicode.ToUpper: Transformă un singur caracter în literă mare, mică sau în forma de titlu; celelalte caractere rămân neschimbate.strings.ToUpper: Returnează textul scris cu litere mari (ToUpper) sau mici (ToLower), inclusiv diacriticele.