Sobes.tech
Junior — Middle

El tudná magyarázni, hogyan valósul meg a karakterlánc szerkezete a programozásban, és miből áll?

sobes.tech MI

Válasz az MI-től

Go-ban a string egy változtathatatlan bájt-sorozat, amely általában UTF-8 kódolású szöveget reprezentál. Belsőleg a string két mezővel rendelkező struktúraként van megvalósítva: egy mutatóval egy bájt tömbre és egy hosszúsággal.

Egyszerűsített string struktúra példája Go-ban:

// stringHeader — belső string struktúra
import "reflect"

var s string = "hello"
header := (*reflect.StringHeader)(unsafe.Pointer(&s))
// header.Data — mutató a bájtokra
// header.Len — a string hossza

A Go-ban a stringek változtathatatlanok, így minden olyan művelet, ami módosítja a stringet, új másolatot hoz létre.