Junior — Middle
Můžete vysvětlit, jak je v programování implementována struktura řetězce a z čeho se skládá?
sobes.tech AI
Odpověď od AI
V jazyce Go je řetězec (string) nemměnitelná posloupnost bajtů, obvykle představující text v kódování UTF-8. Interně je řetězec implementován jako struktura se dvěma poli: ukazatelem na pole bajtů a délkou.
Příklad zjednodušené struktury řetězce v Go:
// stringHeader — interní struktura řetězce
import "reflect"
var s string = "hello"
header := (*reflect.StringHeader)(unsafe.Pointer(&s))
// header.Data — ukazatel na bajty
// header.Len — délka řetězce
Řetězce v Go jsou neměnitelné, takže jakákoli operace, která řetězec mění, vytvoří novou kopii.