Sobes.tech
Senior

What are strings in Go? What do they represent under the hood?

sobes.tech AI

Answer from AI

In Go, a string (string) is an immutable sequence of bytes, typically representing text in UTF-8 encoding. Under the hood, a string is implemented as a structure with two fields: a pointer to a byte array and a length. This means that a string is a slice of bytes, but without the ability to modify its contents.

An example of its internal representation (simplified):

// type stringStruct struct {
//     ptr *byte
//     len int
// }

Because strings are immutable, any operations that modify the content create a new string. This is important to consider when working with large strings to optimize performance.

What are strings in Go? What do they represent under… - sobes.tech