Avatar ·

Wie konvertiert man ein null-terminiertes Byte-Array in einen String in Go?

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf ein Problem bei der Arbeit mit C-Strings gestoßen. Ich muss Daten aus einer externen Quelle lesen (z.B. von syscall oder einer C-Bibliothek über cgo), die ein Byte-Array zurückgibt, das mit einem Null-Byte (`\0`) endet. In Go sind Strings einfach Byte-Slices, aber sie müssen nicht null-terminiert sein, und ein Null-Byte innerhalb eines Strings wird als normales Zeichen betrachtet. Ich habe diesen Code: ```go package main import "fmt" func main() { // Beispiel: Byte-Array, das von einer C-Funktion erhalten wurde data := []byte{'H', 'e', 'l', 'l', 'o', 0, 'W', 'o', 'r', 'l', 'd', 0} // Einfache Konvertierung in einen String str := string(data) fmt.Println(str) // Gibt "Hello" und Müll aus? oder "Hello\0World"? } ``` Das Problem ist, dass wenn ich