Go dilində sətirlərlə necə işləyə bilərsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da sətirlər dəyişməz ardıcıllıqlardır.
Sətirlərlə işləməyin əsas üsulları:
-
Yaradıcılıq:
// Sətir literalı s1 := "Hello, Go!" // Bayt massivindən byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Birgə yazma:
s3 := "World" result := s1 + " " + s3 // + operatorundan istifadəÇox sayda birgə yazma üçün
strings.Builderdaha səmərəlidir:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Uzunluq:
- Baytlarda:
byteLength := len(s1) - Simvollarda (runes):
runeLength := utf8.RuneCountInString(s1) // "unicode/utf8" import etməyi tələb edir
- Baytlarda:
-
Simvollara (runes) giriş və iterasiya: Go-da sətirlər baytlardan ibarətdir, amma
rangeilə iterasiya edildikdə, onlar Unicode kod nöqtələrinə (runes) deşifrə olunur.import "fmt" for index, runeValue := range s1 { fmt.Printf("İndeks: %d, Rune: %c, Tip: %T\n", index, runeValue, runeValue) }Birbaşa indeksə giriş bayt qaytarır, rune deyil:
b := s1[0] // 'H' baytını qaytarır -
Konvertasiya:
- Bayt diliminə:
byteSlice := []byte(s1) - Rune diliminə:
runeSlice := []rune(s1)
- Bayt diliminə:
-
stringspaketi: Sətirlərlə işləmək üçün çox faydalı funksiyalar təqdim edir:strings.Contains(s, substr): Alt sətirin olub-olmadığını yoxlayır.strings.HasPrefix(s, prefix): Sətirin prefiks ilə başlayıb- başlamadığını yoxlayır.strings.HasSuffix(s, suffix): Sətirin sonek ilə bitib-bitmədiyini yoxlayır.strings.Index(s, substr): Alt sətirin ilk tapıldığı yeri tapır.strings.ReplaceAll(s, old, new): Bütün uyğun gələnləri dəyişir.strings.Split(s, sep): Sətiri ayırır.strings.Join(a []string, sep string): Sətirləri birləşdirir.strings.ToLower(s): Kiçik hərflərə çevirir.strings.ToUpper(s): Böyük hərflərə çevirir.strings.TrimSpace(s): Baş və sondakı boşluqları silir.
-
fmtpaketi: Formatlaşdırılmış çıxış və giriş üçün. -
strconvpaketi: Sətirləri sayısal tiplərə və əksinə çevirmək üçün:import "strconv" i, err := strconv.Atoi("123") // String-dən int-ə s := strconv.Itoa(i) // Int-dən string-ə
Sətirlərin dəyişməzliyi vacibdir və bu, hər hansı bir əməliyyatın (məsələn, birləşdirmə və ya Replace) əslində yeni sətir yaratdığını göstərir.