Вот несколько методов, обычно используемых с фрагментами Go, а также примеры кода:
-
append(): добавляет элементы в срез.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3} slice = append(slice, 4, 5) fmt.Println(slice) // Output: [1 2 3 4 5] } -
copy(): копирует элементы из одного фрагмента в другой.package main import ( "fmt" ) func main() { slice1 := []int{1, 2, 3} slice2 := make([]int, len(slice1)) copy(slice2, slice1) fmt.Println(slice2) // Output: [1 2 3] } -
len(): возвращает длину среза.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3} length := len(slice) fmt.Println(length) // Output: 3 } -
cap(): возвращает емкость среза.package main import ( "fmt" ) func main() { slice := make([]int, 3, 5) capacity := cap(slice) fmt.Println(capacity) // Output: 5 } -
slice[start:end]: извлекает часть фрагмента на основе начального и конечного индексов.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3, 4, 5} subSlice := slice[1:3] fmt.Println(subSlice) // Output: [2 3] } -
slice[:]: копирует весь фрагмент.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3} newSlice := slice[:] fmt.Println(newSlice) // Output: [1 2 3] } -
slice[:end]илиslice[start:]: извлекает элементы с начала или до конца среза соответственно.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3, 4, 5} startSlice := slice[:3] endSlice := slice[2:] fmt.Println(startSlice) // Output: [1 2 3] fmt.Println(endSlice) // Output: [3 4 5] } -
slice[start:end:capacity]: определяет новый фрагмент с определенной емкостью.package main import ( "fmt" ) func main() { slice := []int{1, 2, 3, 4, 5} newSlice := slice[1:3:4] fmt.Println(newSlice) // Output: [2 3] fmt.Println(cap(newSlice)) // Output: 4 }