Sobes.tech
Senior

O que são strings em Go? O que elas representam por baixo do capô?

sobes.tech IA

Resposta da IA

No Go, uma string (string) é uma sequência imutável de bytes, geralmente representando texto na codificação UTF-8. Por baixo dos panos, uma string é implementada como uma estrutura com dois campos: um ponteiro para um array de bytes e um comprimento. Isto significa que uma string é uma fatia de bytes, mas sem a possibilidade de alterar o seu conteúdo.

Exemplo de representação interna (simplificado):

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

Devido à sua imutabilidade, quaisquer operações que alterem o conteúdo criam uma nova string. Isto é importante de ter em conta ao trabalhar com strings grandes para otimizar o desempenho.