Junior
Golang dilində string məlumat tipi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Golang-da string dəyişməz baytlar ardıcıllığıdır.
Əsas xüsusiyyətlər:
- Dəyişməzlik: Bir sətir yaradıldıqdan sonra, onu dəyişdirmək mümkün deyil. Hər hansı bir əməliyyat, sətiri dəyişdirirsə, əslində yeni sətir yaradır.
- Təqdimat: Sətir baytların ardıcıllığını ehtiva edir. Standart olaraq, Golang bu baytların UTF-8 kodlaşdırılmış mətn olduğunu qəbul edir.
- Uzunluq: Sətirin uzunluğu (
len(s)) sətirdəki baytların sayını qaytarır, simvolların (rune) sayını yox. - İndeks: Sətirdə elementlərə indekslə giriş (
s[i]) həmin indeksdəki baytı qaytarır. - Runlar: Simvollar (runlar) ilə işləmək üçün,
for rangedövrü ilə sətirdə iterasiya edilir, bu UTF-8-i dekod edir və runlar və onların indekslərini təmin edir.
Nümunə:
// Sətiri başlatmaq
s := "Привет, мир!" // 23 bayt, 12 run
// Sətirin uzunluğu (bayt)
byteLength := len(s) // 23
// Bayta indekslə giriş
firstByte := s[0] // firstByte = 208 (UTF-8-də 'П' baytı)
// Runlar üzərində iterasiya
runeCount := 0
for index, runeValue := range s {
// index - runanın başlanğıc indeksi (bayt)
// runeValue - dekodlaşdırılmış runa
runeCount++
}
// runeCount = 12