Как разбить слайс на части?

В языке программирования Go есть несколько способов разбить слайс на части. Предлагаю рассмотреть несколько из них.

1. Использование срезов (slicing).
С помощью срезов можно получить подслайс из исходного слайса. Синтаксис срезов выглядит следующим образом:

newSlice := oldSlice[start:end]

где oldSlice - исходный слайс, start - индекс элемента, с которого начинается новый слайс (включительно), end - индекс элемента, на котором заканчивается новый слайс (не включая этот элемент).

Пример:

package main

import "fmt"

func main() {
    originalSlice := []int{1, 2, 3, 4, 5}
    newSlice := originalSlice[1:4]

    fmt.Println(newSlice) // Вывод: [2 3 4]
}

2. Использование функции append.
Функция append позволяет добавлять элементы в слайс. Можно использовать эту функцию для создания новых слайсов, забирая нужные элементы из исходного слайса и добавляя их в новый слайс.
Пример:

package main

import "fmt"

func main() {
    originalSlice := []int{1, 2, 3, 4, 5}
    newSlice := []int{}

    newSlice = append(newSlice, originalSlice[1:4]...)

    fmt.Println(newSlice) // Вывод: [2 3 4]
}

3. Использование цикла и условия.
Мы можем использовать цикл и условие для добавления нужных элементов в новый слайс вручную.
Пример:

package main

import "fmt"

func main() {
    originalSlice := []int{1, 2, 3, 4, 5}
    newSlice := []int{}

    for i := 1; i < 4; i++ {
        newSlice = append(newSlice, originalSlice[i])
    }

    fmt.Println(newSlice) // Вывод: [2 3 4]
}

В каждом из указанных вариантов мы можем задавать различные значения start и end, чтобы получить разные части исходного слайса.