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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen