Sobes.tech
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 range dö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