Что выведет код Middle Слайсы и мапы изнутри спрашивают часто обновлено
Что выведет Go: два append в один подслайс
Вопрос
Что выведет программа? Go 1.23, в go.mod указано go 1.23.
package main
import "fmt"
func main() {
a := make([]int, 3, 10)
b := append(a, 1)
c := append(a, 2)
fmt.Println(b[3], c[3])
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 2 2. У a длина 3 и ёмкость 10.
Что выведет
2 2
Разбор
У a длина 3 и ёмкость 10. Оба append помещаются в ёмкость и пишут в один и тот же элемент общего массива с индексом 3: сначала 1, затем 2. b и c смотрят в один массив, поэтому оба видят 2.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что выведет Go: append при полной ёмкости
Следующий вопрос
Что выведет Go: массив передаётся по значению
Ещё по теме «Слайсы и мапы изнутри»
- Разбить слайс на части по k на Go
- Удаление дубликатов с сохранением порядка на Go
- Группировка анаграмм на Go
- Циклический сдвиг слайса на Go
- Число подмассивов с суммой k на Go
- Топ-k частых слов на Go
- Что выведет Go: изменение элемента и append в функции
- Что выведет Go: удаление ключей во время range