
Golang 슬라이스
2022-06-03 last update
7 minutes reading golang본고는 고프로그래밍 언어의 절편을 어떻게 사용하는지 깊이 있게 연구하고자 한다.
우리는 모두 고나 다른 프로그래밍 언어의 수조에 익숙하다.배열은 관련 데이터 형식의 요소 집합입니다.go에서 배열은 유사한 유형의 요소만 수용할 수 있습니다.수조는 고정된 길이를 가지고 있어 크기를 정의하면 증가하거나 수축할 수 없다.
슬라이스는 배열 요소의 동적 크기 보기입니다.슬라이스가 매우 유연하여 크기를 조정할 수 있습니다.그러나 크기를 조정하려면 기본 어레이의 용량을 유지해야 합니다.
다음과 같은 간단한 구문을 사용하여 슬라이스를 선언할 수 있습니다.
슬라이스 성명이 그룹 성명과 매우 비슷하다는 것을 알 수 있습니다.그러나 슬라이스의 크기는 지정하지 않습니다.
Go에서 슬라이스를 생성하는 방법은 두 가지입니다.첫 번째는 텍스트 형식을 사용하는 것이다.이것은 위의 문법과 매우 비슷하다.
예를 들어, 다음 코드는 my\u slice라는 슬라이스를 생성합니다.
go에서 슬라이스를 만드는 두 번째 방법은make 함수를 사용하는 것입니다.
구문은 다음과 같습니다.
실천에서 이해하려면 다음과 같이 하십시오.
색인 1에 값을 지정하려면 다음과 같이 하십시오.
슬라이스의 두 가지 중요한 속성을 익혀야 합니다.길이와 용량.
필름의 길이는 필름이 가지고 있는 원소의 총수를 가리키고, 용량은 밑바닥 수조에 의해 정의된 원소의 수를 가리킨다.이것은 슬라이스의 첫 번째 원소부터 계산한 것이다.
슬라이스의 길이와 용량을 얻으려면 각각 렌 () 과cap () 방법을 사용할 수 있습니다.
예는 다음과 같습니다.
너는 우리가 기존의 절편에서 절편을 형성할 수 있다는 것을 아니?
우리는 하한선과 상한선을 가진 색인 경계를 지정함으로써 이 점을 실현할 수 있다.예를 들어, 색인 1에서 5까지의 요소를 사용하여 새 슬라이스를 생성하려면 다음과 같이 하십시오.
우리는 고전적인 for a 순환 반복 그룹을 사용할 수 있다.
예:
copy 방법으로 요소를 한 슬라이스에서 다른 슬라이스로 복사할 수 있습니다.다음 예제를 고려하십시오.
다차원 슬라이스를 생성할 수도 있습니다.그것은 기본적으로 하나하나를 의미한다.예는 다음과 같습니다.
이 가이드는 Go에서 슬라이스를 사용하는 기본 지식을 이해하는 데 도움을 줍니다.비록 우리는 본 강좌의 범위 내에서 극도로 절편할 수는 없지만, 반드시 당신으로 하여금 공부를 시작하게 해야 합니다.
우리는 모두 고나 다른 프로그래밍 언어의 수조에 익숙하다.배열은 관련 데이터 형식의 요소 집합입니다.go에서 배열은 유사한 유형의 요소만 수용할 수 있습니다.수조는 고정된 길이를 가지고 있어 크기를 정의하면 증가하거나 수축할 수 없다.
슬라이스는 배열 요소의 동적 크기 보기입니다.슬라이스가 매우 유연하여 크기를 조정할 수 있습니다.그러나 크기를 조정하려면 기본 어레이의 용량을 유지해야 합니다.
슬라이스 선언
다음과 같은 간단한 구문을 사용하여 슬라이스를 선언할 수 있습니다.
var slice_name []data _type
위의 문법에서, 우리는 먼저 slice\u의 이름을 지정하고, 그 다음에 상대방의 괄호와 절편의 데이터 형식을 따른다.슬라이스 성명이 그룹 성명과 매우 비슷하다는 것을 알 수 있습니다.그러나 슬라이스의 크기는 지정하지 않습니다.
슬라이스 생성 – 메서드 1
Go에서 슬라이스를 생성하는 방법은 두 가지입니다.첫 번째는 텍스트 형식을 사용하는 것이다.이것은 위의 문법과 매우 비슷하다.
예를 들어, 다음 코드는 my\u slice라는 슬라이스를 생성합니다.
package main
import"fmt"
funcmain() {
var my_slice = []int{1, 2, 3, 4, 5, 6}
fmt.Println(my_slice)
}
위의 예는 기본값을 사용하여 int 형식의 슬라이스를 만듭니다.변수 선언의 var 방법을 사용하지 않으려면 다음 구문을 사용할 수 있습니다.my_slice := []int{1,2,3,4,5,6}
상술한 방법을 sliceliteral이라고 부른다.슬라이스 생성 – 메서드 2
go에서 슬라이스를 만드는 두 번째 방법은make 함수를 사용하는 것입니다.
구문은 다음과 같습니다.
func make([]T, len, cap) []T
이런 상황에서 함수는 데이터 유형, 길이와 용량을 채택한다.함수는capacity 매개 변수에 의해 크기가 지정된 그룹을 분배합니다.함수는 이 그룹을 인용하는 슬라이스를 되돌려줍니다.실천에서 이해하려면 다음과 같이 하십시오.
slice_var := make([]int, 10)
fmt.Println(slice_var)
이 예는 크기가 10, int 형식의 슬라이스를 설명합니다.결과 출력은 0 값의 슬라이스입니다.[0 0 0 0 0 0 0 0 0 0]
색인 표현을 사용하여 슬라이스에 값을 할당할 수 있습니다.색인 1에 값을 지정하려면 다음과 같이 하십시오.
slice_var[0] = 10
fmt.Println(slice_var)
위의 코드를 반환해야 합니다.[10 0 0 0 0 0 0 0 0 0]
참고: 색인 0의 요소가 새 값을 반영하도록 업데이트되었습니다.슬라이스 속성
슬라이스의 두 가지 중요한 속성을 익혀야 합니다.길이와 용량.
필름의 길이는 필름이 가지고 있는 원소의 총수를 가리키고, 용량은 밑바닥 수조에 의해 정의된 원소의 수를 가리킨다.이것은 슬라이스의 첫 번째 원소부터 계산한 것이다.
슬라이스의 길이와 용량을 얻으려면 각각 렌 () 과cap () 방법을 사용할 수 있습니다.
예는 다음과 같습니다.
package main
import"fmt"
funcmain() {
varmy_slice = []int{1, 2, 3, 4, 5, 6}
fmt.Println("Length: ", len(my_slice))
fmt.Println("Capacity: ", cap(my_slice))
}
위의 예제 코드는 슬라이스의 길이와 용량을 다음과 같이 반환해야 합니다.ength: 6
Capacity: 6
Go 인덱스 슬라이스
너는 우리가 기존의 절편에서 절편을 형성할 수 있다는 것을 아니?
우리는 하한선과 상한선을 가진 색인 경계를 지정함으로써 이 점을 실현할 수 있다.예를 들어, 색인 1에서 5까지의 요소를 사용하여 새 슬라이스를 생성하려면 다음과 같이 하십시오.
new_slice := my_slice[1:5]
fmt.Println(new_slice)
The resulting slice becomes:
[2 3 4 5]
절편 교체
우리는 고전적인 for a 순환 반복 그룹을 사용할 수 있다.
예:
package main
import"fmt"
funcmain() {
varmy_slice = []string{"Python", "JavaScript", "Go", "Rust", "Dart"}
fori, item := rangemy_slice {
fmt.Println(i, item)
}
}
위의 예시에서 우리는 for 순환과range 문장을 사용하여 영화의 색인과 항목을 교체합니다.결과 출력:0 Python
1 JavaScript
2 Go
3 Rust
4 Dart
슬라이스에서 range 문구를 사용하지 않으려면 슬라이스의 길이를 다음과 같이 사용할 수 있습니다.for i := 0; i < len(my_slice); i++ {
fmt.Println(my_slice[i])
}
위의 예는 사용 범위 구조와 유사한 출력을 되돌려줍니다.복사 요소로 이동
copy 방법으로 요소를 한 슬라이스에서 다른 슬라이스로 복사할 수 있습니다.다음 예제를 고려하십시오.
funccopy_slice() {
slice_1 := []int{1, 2, 3, 4, 5}
slice_2 := []int{6, 7, 8, 9, 10}
new_slice := copy(slice_1, slice_2)
fmt.Printf("%d elements copied", new_slice)
}
함수는 복사된 원소의 총수를 되돌려줍니다.다차원 절편
다차원 슬라이스를 생성할 수도 있습니다.그것은 기본적으로 하나하나를 의미한다.예는 다음과 같습니다.
funcmulti_slice() {
multi_slice := [][]int{
{1, 2},
{3, 4},
{5, 6},
{7, 8},
}
fmt.Println(multi_slice)
}
위의 예제에서는 다차원 슬라이스를 다음과 같이 인쇄해야 합니다.[[1 2] [3 4] [5 6] [7 8]]
다차원 그룹의 요소에 접근하려면 색인을 다음과 같이 사용할 수 있습니다.fmt.Println(multi_slice[0][0])
상술한 문법은 첫 번째 부분의 첫 번째 요소를 되돌려줍니다.결론
이 가이드는 Go에서 슬라이스를 사용하는 기본 지식을 이해하는 데 도움을 줍니다.비록 우리는 본 강좌의 범위 내에서 극도로 절편할 수는 없지만, 반드시 당신으로 하여금 공부를 시작하게 해야 합니다.