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