Go dilində sətərlərlə necə işləmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da sətirlər dəyişməz ardıcıllıqlardır. Onlar həm UTF-8 mətnini, həm də istənilən ikili məlumatları təmsil edə bilər.
Əsas işləmə üsulları:
-
İlan və başlanğıc:
var s1 string // Boş sətir s2 := "salam" // Sətir literalı ilə başlanğıc s3 := `çox sətirli sətir` // Xam sətir literalı -
Sətirin uzunluğu:
len(s2) // Bayt cinsindən uzunluq. "salam" üçün 5. -
Baytlara giriş:
b := s2[0] // İndeksdəki bayt. 's' (UTF-8-də).Birbaşa baytlara giriş UTF-8 simvolunu tam almağı təmin etmir.
-
Rünlara (UTF-8 simvollarına) giriş: Sətirlər rünlar üzrə təkrarlanabilir:
for index, runeValue := range s2 { fmt.Printf("İndeks: %d, Runa: %c\n", index, runeValue) }Uzunluğu rünlarda:
utf8.RuneCountInString(s2) // Rünların sayı. "salam" üçün 5. -
Sətirlərin birləşdirilməsi:
str1 := "salam" str2 := " dünya" result := str1 + str2 // + operatoru ilə birləşdirməÇox sayda sətiri səmərəli birləşdirmək üçün
strings.Builderistifadə edin.var sb strings.Builder sb.WriteString("salam") sb.WriteString(" ") sb.WriteString("dünya") result := sb.String() // Nəticə sətiri -
Sətirlər və bayt/rune dilimləri arasında çevirmə:
byteslice := []byte(s2) // Sətiri bayt diliminə çevirmək rs := []rune(s2) // Sətiri rune diliminə çevirmək backToString := string(byteslice) // Bayt dilimindən sətir backToString = string(rs) // Rune dilimindən sətir -
stringspaketi: Bir çox faydalı funksiyalar təqdim edir:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvpaketi: Sətirləri digər məlumat tiplərinə (rəqəmlər, booleanlər) çevirmək və əksinə.i, err := strconv.Atoi("123") // Sətiri int-ə çevirmək s := strconv.Itoa(456) // Int-i sətirə çevirmək -
Dəyişməzlik: Hər hansı bir əməliyyat, sətiri dəyişdiyinə bənzər olsa da (məsələn, birləşdirmə), əslində yeni sətir yaradır. Bu, tez-tez dəyişikliklər zamanı performans üçün vacibdir. Bu halda,
[]bytevə yastrings.Builderistifadə etmək daha yaxşıdır.