Что выведет код 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 ошибок.
Ещё по теме «Слайсы и мапы изнутри»
- Разбить слайс на части по k на Go
- Удаление дубликатов с сохранением порядка на Go
- Группировка анаграмм на Go
- Циклический сдвиг слайса на Go
- Число подмассивов с суммой k на Go
- Топ-k частых слов на Go
- Что выведет Go: append при полной ёмкости
- Что выведет Go: два append в один подслайс