Как нарезать слайс?

Junior
1.2k просмотров
AFK Offer AI

Слайс нарезается оператором [low:high] или [low:high:max]:

s := []int{0, 1, 2, 3, 4, 5}

a := s[1:4] // [1, 2, 3], len=3, cap=5 b := s[:3] // [0, 1, 2], len=3, cap=6 c := s[2:] // [2, 3, 4, 5], len=4, cap=4 d := s[1:3:3] // [1, 2], len=2, cap=2 (ограничен cap)

Важно: нарезанный слайс разделяет underlying array с оригиналом. Изменение элемента в одном отразится в другом. Третий параметр (max) ограничивает cap — это полезно, чтобы append создал новый массив вместо перезаписи данных оригинала.

Следующий вопрос

Как проверить работу горутины через канал?