Sobes.tech
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"
}