make([]Product, 100) создаёт уже 100 элементов. Для пустой корзины с запасом памяти используйте make([]Product, 0, 100), а добавление делайте через append.
func init() {
make([]Product, 100) создаёт уже 100 элементов. Для пустой корзины с запасом памяти используйте make([]Product, 0, 100), а добавление делайте через append.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
func init() { items = make([]Product, 100) }
func AddItemToShoppingCart(item Product) {
Ответ
make([]Product, 100) создаёт уже 100 элементов. Для пустой корзины с запасом памяти используйте make([]Product, 0, 100), а добавление делайте через append.
func init() {
items = make([]Product, 0, 100)
}
func AddItemToShoppingCart(item Product) {
items = append(items, item)
}
Product и items предполагаются объявленными в остальном коде. Это однопоточный минимальный пример: конкурентный доступ требует синхронизации, а общая глобальная корзина не подходит для разных пользователей.