Junior — Middle
Dasturlashda satr tuzilmasi qanday amalga oshirilganligini va uning nimadan iboratligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Go tilida, satr (string) odatda UTF-8 kodlashida matnni ifodalovchi o'zgarmas baytlar ketma-ketligi. Ichki jihatdan, satr ikki maydonli tuzilma sifatida amalga oshiriladi: baytlar massiviga ko'rsatkich va uzunlik.
Go'da soddalashtirilgan satr tuzilmasi misoli:
// stringHeader — ichki satr tuzilmasi
import "reflect"
var s string = "hello"
header := (*reflect.StringHeader)(unsafe.Pointer(&s))
// header.Data — baytlarga ko'rsatkich
// header.Len — satr uzunligi
Go'da satrlar o'zgarmasdir, shuning uchun satrni o'zgartiradigan har qanday operatsiya yangi nusxa yaratadi.