Senior
// Question 1. Que va-t-il afficher à l'écran? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }
sobes.tech IA
Réponse de l'IA
Ce code ne sera pas compilé et entraînera une erreur de compilation.
La raison en est que les chaînes en Go sont des segments immuables de bytes. Tenter de modifier un byte individuel d'une chaîne, comme dans s[0] = 'h', est impossible et entraînera une erreur de type "cannot assign to s[0]".
Si vous devez modifier une chaîne, vous devez la convertir en un segment de bytes ou de runes, modifier l'élément nécessaire, puis la reconvertir en chaîne :
package main
import "fmt"
func main() {
s := "Hello world"
b := []byte(s)
b[0] = 'h'
s = string(b)
fmt.Println(s) // affichera "hello world"
}