Junior
Golang tilida string ma'lumot turi nima?
sobes.tech AI
AIdan javob
Golang'da string — bu o'zgarmas baytlar ketma-ketligi.
Asosiy xususiyatlar:
- O'zgarmaslik: Bir satrni yaratgandan so'ng, uni o'zgartib bo'lmaydi. Satrni o'zgartirishga har qanday operatsiya aslida yangi satr yaratadi.
- Taqdimoti: Satr baytlar ketma-ketligini o'z ichiga oladi. Standart tarzda, Golang bu baytlar UTF-8 kodlangan matnni ifodalaydi deb hisoblaydi.
- Uzunligi: Satrning uzunligi (
len(s)) satrdagi baytlar sonini, emas, balki runalar (belgilar) sonini qaytaradi. - Indeksatsiya: Satrdagi elementlarga indeks yordamida kirish (
s[i]) bu indeksdagi baytni qaytaradi. - Runalar: Belgilar (runalar) bilan ishlash uchun,
for rangetsikli yordamida satr bo'ylab iteratsiya qilinadi, bu UTF-8 ni dekod qiladi va runalar hamda ularning indekslarini taqdim etadi.
Misol:
// Satrni boshlash
s := "Привет, мир!" // 23 bayt, 12 runa
// Satrning uzunligi (baytda)
byteLength := len(s) // 23
// Indeks yordamida baytga kirish
firstByte := s[0] // firstByte = 208 (UTF-8 da 'П' bayti)
// Runalar bo'yicha iteratsiya
runeCount := 0
for index, runeValue := range s {
// index - satrdagi runaning boshlanish indeksi (baytda)
// runeValue - dekodlangan runa
runeCount++
}
// runeCount = 12