Senior
// Frage 1. Was wird auf dem Bildschirm angezeigt? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }
sobes.tech KI
Antwort von AI
Dieser Code wird nicht kompiliert und führt zu einem Kompilierungsfehler.
Der Grund ist, dass Strings in Go unveränderliche Byte-Slices sind. Der Versuch, ein einzelnes Byte in einer String, wie in s[0] = 'h', zu ändern, ist nicht möglich und führt zu einem Fehler vom Typ "cannot assign to s[0]".
Wenn Sie eine String ändern möchten, sollten Sie sie in ein Byte- oder Rune-Slice umwandeln, das erforderliche Element ändern und dann wieder in eine String umwandeln:
package main
import "fmt"
func main() {
s := "Hello world"
b := []byte(s)
b[0] = 'h'
s = string(b)
fmt.Println(s) // gibt "hello world" aus
}