Нарезка слайса в Go достигается с помощью синтаксиса a[low:high]
, где low
— начальный индекс (включительно), а high
— конечный индекс (не включительно). Также доступны варианты a[:high]
(от начала до high
), a[low:]
(от low
до конца) и a[:]
(копия всего слайса).
Нюансы и подводные камни:
low
. Это может привести к неожиданным изменениям при добавлении элементов (append
) в нарезанный слайс, если его capacity будет исчерпана раньше capacity исходного слайса.low
и high
должны быть в пределах [0, len(a)] и [0, cap(a)] соответственно. Нарушение этих правил приведет к панике во время выполнения: panic: slice bounds out of range
.copy
.Примеры:
go
Нарезка слайса в Go достигается с помощью синтаксиса a[low:high]
, где low
— начальный индекс (включительно), а high
— конечный индекс (не включительно). Также доступны варианты a[:high]
(от начала до high
), a[low:]
(от low
до конца) и a[:]
(копия всего слайса).
Нюансы и подводные камни:
low
. Это может привести к неожиданным изменениям при добавлении элементов (append
) в нарезанный слайс, если его capacity будет исчерпана раньше capacity исходного слайса.low
и high
должны быть в пределах [0, len(a)] и [0, cap(a)] соответственно. Нарушение этих правил приведет к панике во время выполнения: panic: slice bounds out of range
.copy
.Примеры:
go
Register or sign in to get access to full answers for all questions from the question bank.