Что выведет код 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 ошибок.