Какой результат будет выведен программой

Программа не скомпилируется: строку нельзя изменять по индексу, а fmt не импортирован. До выполнения и консольного вывода дело не дойдёт.

Короткий ответ

Что ответить на собеседовании

Программа не скомпилируется: строку нельзя изменять по индексу, а fmt не импортирован. До выполнения и консольного вывода дело не дойдёт.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой текст появится в консоли после выполнения приведённого кода.

package main

// import "fmt"

func main() {
    str := "Hello world"
    str[0] = 'h'
    fmt.Println(str)
}

Ответ

Программа не скомпилируется: строку нельзя изменять по индексу, а fmt не импортирован. До выполнения и консольного вывода дело не дойдёт.

Для данного ASCII-текста исправление выглядит так:

package main

import "fmt"

func main() {
    str := "Hello world"
    data := []byte(str)
    data[0] = 'h'
    fmt.Println(string(data))
}

Теперь будет выведено hello world. Для произвольного Unicode-текста замена символа обычно требует []rune или обработки графем. Это не ситуация runtime panic, поэтому добавление recover исходную ошибку компиляции не исправляет.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее