Senior
// Pergunta 1. O que será exibido na tela? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }
sobes.tech IA
Resposta da IA
Este código não irá compilar e causará um erro de compilação.
A razão é que as strings em Go são fatias imutáveis de bytes. Tentar modificar um byte individual de uma string, como em s[0] = 'h', não é possível e resultará num erro do tipo "cannot assign to s[0]".
Se precisar modificar uma string, deve convertê-la numa fatia de bytes ou runas, modificar o elemento necessário e depois convertê-la de volta para uma string:
package main
import "fmt"
func main() {
s := "Hello world"
b := []byte(s)
b[0] = 'h'
s = string(b)
fmt.Println(s) // irá mostrar "hello world"
}