Что выведет код Middle Слайсы и мапы изнутри обновлено

Что выведет Go: полный срез и append

Вопрос

Что выведет программа? Go 1.23, в go.mod указано go 1.23.

package main

import "fmt"

func main() {
    a := []int{1, 2, 3, 4}
    b := a[:2:2]
    b = append(b, 99)
    fmt.Println(a, b)
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: [1 2 3 4] [1 2 99]. Третий индекс ограничил ёмкость b двумя элементами. append не помещается и выделяет новый массив, поэтому a остаётся нетронутым.

Что выведет

[1 2 3 4] [1 2 99]

Разбор

Третий индекс ограничил ёмкость b двумя элементами. append не помещается и выделяет новый массив, поэтому a остаётся нетронутым. Без :2 запись 99 затёрла бы тройку в a.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.