Что произойдёт: var s []int; fmt.Println(s == nil, len(s), cap(s))?

Junior
164 просмотров
AFK Offer AI

Выведет true, 0, 0. nil slice: s == nil, но len и cap работают — возвращают 0. append(s, 1) тоже работает. JSON: nil slice маршалится в null, пустой []int{} — в []. Это может сломать API. Для консистентности: всегда инициализируй если отдаёшь наружу: s := []int{} или s := make([]int, 0).

Следующий вопрос

Как планировщик выбирает какую горутину запустить?