Ответ на «Как устроен слайс и чем он отличается от массива?» | Golang Юниор
Ответ на «Как устроен слайс и чем он отличается от массива?»
Срезы (slice) в отличие от массивов могут менять свою длину. То есть можно добавлять новые элементы, или удалять уже существующие.
Также в Go имеется оператор среза : , который позволяет создавать новый срез и содержит указанную последовательность от и до:
// исходный массив
initialUsers := [8]string{"Bob", "Alice", "Kate", "Sam", "Tom",
"Paul", "Mike", "Robert"}
users1 := initialUsers[2:6] // с 3-го по 6-й
users2 := initialUsers[:4] // с 1-го по 4-й
users3 := initialUsers[3:] // с 4-го до конца
fmt.Println(users1) //["Kate", "Sam", "Tom", "Paul"]
fmt.Println(users2) //["Bob", "Alice", "Kate", "Sam"]
fmt.Println(users3) //["Sam", "Tom", "Paul", "Mike", "Robert"]