Cadena inmutable y dirección de puntero
En irEspecificaciones está escrito:
Las cadenas son inmutables: una vez creadas, es imposible cambiar el contenido de una cadena.
Tengo el siguiente código:
str := "hello"
fmt.Printf("%p\n",&str) // 0x1040c128
fmt.Printf("%v\n",str) // hello
ptr := &str
*ptr = "world"
fmt.Printf("%p\n",&str) // 0x1040c128
fmt.Printf("%v\n",str) // world
Hubiera esperado&str
la dirección fue cambiada después*ptr = "world"
. Como sucedería con Java, donde reasignamos referencias de String.
¿Qué es la 'inmutabilidad' aquí?