Senior
12
// Вопрос 1. Что выведет на экран? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }
Компании, где спрашивали
МВидео/эльдорадо
Ответ от нейросети
sobes.tech AI
Данный код не скомпилируется и вызовет ошибку компиляции.
Причина в том, что строки в Go являются неизменяемыми срезами байт. Попытка изменить отдельный байт строки, как в s[0] = 'h', невозможна и приведёт к ошибке типа "cannot assign to s[0]".
Если нужно изменить строку, её следует преобразовать в срез байт или рун, изменить нужный элемент и затем преобразовать обратно в строку:
package main
import "fmt"
func main() {
s := "Hello world"
b := []byte(s)
b[0] = 'h'
s = string(b)
fmt.Println(s) // выведет "hello world"
}