Sobes.tech
Senior

// Pregunta 1. ¿Qué mostrará en la pantalla? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }

sobes.tech AI

Respuesta de la IA

Este código no compilará y provocará un error de compilación.

La razón es que las cadenas en Go son segmentos inmutables de bytes. Intentar modificar un byte individual de una cadena, como en s[0] = 'h', no es posible y resultará en un error de tipo "cannot assign to s[0]".

Si necesitas modificar una cadena, debes convertirla en un segmento de bytes o runas, modificar el elemento necesario y luego convertirla de nuevo en una cadena:

package main

import "fmt"

func main() {
    s := "Hello world"
    b := []byte(s)
    b[0] = 'h'
    s = string(b)
    fmt.Println(s) // mostrará "hello world"
}