Sobes.tech
Senior

Go'da satr nima? Uning tuzilishi va xususiyatlari qanday?

sobes.tech AI

AIdan javob

Go tilida, satr (string) bu o'zgarmas baytlar ketma-ketligi bo'lib, odatda UTF-8 kodlashda matnni ifodalaydi. Tuzilmasi bo'yicha, satr ikki maydonli tuzilma sifatida amalga oshiriladi: baytlar massiviga ko'rsatkich va uzunlik.

Go'dagi satrlarning xususiyatlari:

  • O'zgarmaslik: yaratgandan so'ng, satrni o'zgartib bo'lmaydi. Har qanday o'zgartirish operatsiyalari yangi satr yaratadi.
  • UTF-8: satrlar UTF-8 baytlarini saqlaydi, bu Unicode belgilar bilan ishlash imkonini beradi.
  • Baytlar bo'yicha kirish: satrni indekslash baytni qaytaradi, belgini (rune) emas. Belgilar bilan ishlash uchun unicode/utf8 paketidan foydalanish yoki satrni rune slice ga aylantirish kerak.

Satr tuzilmasining soddalashtirilgan misoli:

// Go'da satr taxminan shunday:
type stringStruct struct {
    ptr *byte
    len int
}

Satr bilan ishlash misoli:

s := "Привет"
fmt.Println(len(s)) // baytlar soni
runes := []rune(s)
fmt.Println(len(runes)) // belgilar (rune) soni