Sobes.tech
Senior

Go-da sətir nədir? Onun quruluşu və xüsusiyyətləri nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, string dəyişməz bir bayt ardıcıllığıdır və adətən UTF-8 kodlamasında mətn ifadə edir. Struktur baxımından, string iki sahəli bir quruluş kimi həyata keçirilir: baytlar massivinə göstərici və uzunluq.

Go-dakı stringlərin xüsusiyyətləri:

  • Dəyişməzlik: yaradıldıqdan sonra, string dəyişdirilə bilməz. Hər hansı bir əməliyyat onun məzmununu dəyişirsə, yeni bir string yaradır.
  • UTF-8: stringlər UTF-8 baytlarını saxlayır, bu da Unicode simvolları ilə işləməyə imkan verir.
  • Baytlar üzrə giriş: stringin indeksləşdirilməsi bir bayt qaytarır, simvol (rune) deyil. Simvollarla işləmək üçün unicode/utf8 paketindən istifadə edilməli və ya string rune-ə çevrilməlidir.

Sadə bir string strukturu nümunəsi:

// Go dilində string təxminən belə:
type stringStruct struct {
    ptr *byte
    len int
}

String ilə işləmə nümunəsi:

s := "Привет"
fmt.Println(len(s)) // baytların sayı
runes := []rune(s)
fmt.Println(len(runes)) // simvolların sayı