According to the Go language specification:
Strings are immutable: once created, it is impossible to change the contents of a string.
We’ll see about that.
data := []byte("yellow submarine")
str := *(*string)(unsafe.Pointer(&data))
for i := range data {
data[i] = 'x'
fmt.Printf("%s\n%s\n\n", string(data), str)
}