Функция convert сама ничего не печатает: она создаёт слайс Bar, преобразуя каждый Foo по порядку. Конкретные значения и возможные побочные эффекты зависят от отсутствующей fooToBar.
Какой результат появится в консоли при запуске №80
Функция convert сама ничего не печатает: она создаёт слайс Bar, преобразуя каждый Foo по порядку. Конкретные значения и возможные побочные эффекты зависят от отсутствующей fooToBar.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой вывод будет получен после выполнения следующего кода на Go:
func convert(foos []Foo) []Bar {
bars := make([]Bar, 0)
for _, foo := range foos{
bars = append(bars, fooToBar(foo))
}
return bars
}
Ответ
Функция convert сама ничего не печатает: она создаёт слайс Bar, преобразуя каждый Foo по порядку. Конкретные значения и возможные побочные эффекты зависят от отсутствующей fooToBar.
При корректных определениях типов длина результата равна len(foos), порядок сохраняется. Чтобы уменьшить перераспределения памяти, используйте bars := make([]Bar, 0, len(foos)) перед append либо make([]Bar, len(foos)) с присваиванием по индексу. По этому фрагменту нельзя предсказать текст консоли или поведение самой функции преобразования.