Программа выведет 0123456789: цикл по очереди добавляет десятичные записи чисел от 0 до 9 без разделителей.
Какой результат выведет программа №20
Программа выведет 0123456789: цикл по очереди добавляет десятичные записи чисел от 0 до 9 без разделителей.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой текст появится в консоли после выполнения следующего кода:
func main() {
var resultStr string
for i := 0; i < 10; i++ {
resultStr += fmt.Sprintf("%d", i)
}
fmt.Println(resultStr)
}
Ответ
Программа выведет 0123456789: цикл по очереди добавляет десятичные записи чисел от 0 до 9 без разделителей.
Нулевое значение resultStr — пустая строка. На каждой итерации fmt.Sprintf возвращает строковое представление текущего i, затем конкатенация добавляет его в конец.
Для десяти значений такой код достаточно понятен. При большом объёме многократная конкатенация может создавать лишние копии; тогда используют strings.Builder и при необходимости заранее резервируют размер. Но это оптимизация, не исправление результата: в приведённом примере нет ни пробелов, ни запятых между числами.