Нет, append к nil-слайсу корректен: при добавлении элементов он выделит базовый массив и вернёт новый слайс. Результат нужно присвоить.
Будет ли паника, если сделать append к nil слайсу?
Нет, append к nil-слайсу корректен: при добавлении элементов он выделит базовый массив и вернёт новый слайс. Результат нужно присвоить.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нет, append к nil-слайсу корректен: при добавлении элементов он выделит базовый массив и вернёт новый слайс. Результат нужно присвоить.
Например, var values []int; values = append(values, 1) создаёт слайс с одним элементом. Нулевые len и cap до этого не являются ошибкой. Это отличается от nil-map, куда нельзя записывать без инициализации. При добавлении нуля элементов append не обязан выделять память.