Avatar ·

Como converter um array de bytes terminado em nulo para string em Go?

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com strings C. Preciso ler dados de uma fonte externa (por exemplo, de syscall ou biblioteca C via cgo), que retorna um array de bytes terminado em byte nulo (`\0`). Em Go, strings são apenas slices de bytes, mas não precisam ser terminadas em nulo, e o byte nulo dentro de uma string é considerado um caractere comum. Eu tenho este código: ```go package main import "fmt" func main() { // Exemplo: array de bytes obtido de uma função C data := []byte{'H', 'e', 'l', 'l', 'o', 0, 'W', 'o', 'r', 'l', 'd', 0} // Conversão simples para string str := string(data) fmt.Println(str) // Vai imprimir "Hello" e lixo? ou "Hello\0World"? } ``` O problema é que se eu exib