728x90
슬라이싱(Slicing)은 배열의 일부를 포인터로 가져오는 기능이다.
// array[startIdx:endIdx]
arr := [5]int{1, 2, 3, 4, 5}
arr[1:3] // [2, 3] - (1)부터 (3-1)까지의 값을 가져온다.
배열의 슬라이싱
func main()
{
array := [5]int{1, 2, 3, 4, 5}
slice := array[1:2] // 슬라이싱으로 2 값의 포인터를 가져온다
array[1] = 100 // array : [1, 100, 3, 4, 5]
// slice : [100]
slice = append(slice, 500) // array : [1, 100, 500, 4, 5]
// slice : [100, 500]
}
위와 같이 array의 값들 중에서 원하는 값을 포인터로 가져올 수 있다.
슬라이스의 슬라이싱
func main()
{
slice1 := []int{1, 2, 3, 4, 5}
slice2 := slice1[1:2] // 슬라이싱으로 2 값의 포인터를 가져온다
slice1[1] = 100 // slice1 : [1, 100, 3, 4, 5]
// slice2 : [100]
slice1 = append(slice1, 500) // slice1 : [1, 100, 500, 4, 5]
// slice2 : [100, 500]
}
슬라이싱의 문법
slice1 := []int{1, 2, 3, 4, 5}
slice2 := slice1[0:3] // [1, 2, 3] 처음부터 3-1까지 슬라이싱
// 첫번째 0 인덱스는 제외가 가능하다.
slice3 := slice1[:3] // [1, 2, 3] 처음부터 3-1까지 슬라이싱
slice4 := slice1[2:len(slice1)] // [3, 4, 5] 2부터 끝까지 슬라이싱
// 마지막 인덱스는 제외가 가능하다
slice5 := slice1[2:] // [3, 4, 5] 2부터 끝까지 슬라이싱
// 위에 것을 응용하면 전체 슬라이싱이 간편하다
slice6 := slice1[:] // [1,2, 3, 4, 5] 전체 슬라이싱
// 인덱스 3개로 슬라이싱
//slice[시작 : 끝 : 최대]
slice := []int{1, 2, 3, 4, 5}
slice1 := slice[1:3:4] // [2, 3] 이고 capacity는 4(최대)-1(시작)인 3
- 출처 : Tucker의 Go 언어 프로그래밍
728x90
'Basic Programming > Golang' 카테고리의 다른 글
Golang - 슬라이스 정렬 (1) | 2023.07.13 |
---|---|
Golang - 슬라이스 요소 삭제/추가 (0) | 2023.07.13 |
Golang - 슬라이스 복제 (0) | 2023.07.13 |
Golang - Slice append()를 사용할 때 발생하는 문제 (0) | 2023.07.12 |
Golang - Slice 기본 문법 (0) | 2023.07.12 |