이전 글에 이어서 오늘은 슬라이스에 대해 설명합니다.
슬라이스
슬라이스는 모든 원소가 같은 타입인 가변길이 시퀀스입니다.
슬라이스 타입은 원소가 T 타입인 경우 []T 태로 정의하며, 이는 크기가 없는 배열 타입처럼 보이기도 합니다
슬라이스 타입의 선언과 활용
e := []int{1, 2, 3}
fmt.Println(e)
출력
[1 2 3]
반응형
특징
1. 모든 원소의 타입이 같고, 길이가 가변적 입니다.
2. 슬라이스는 배열과 달리 '==' 연산자로 원소비교가 불가합니다.
3. 슬라이스 탕비의 제로값은 nil입니다.
구성요소
1. 포인터
슬라이스로 접근할 수 있는 배열의 첫 원소를 가리킵니다. 허나, 반드시 배열의 첫 원소일 필요는 없습니다.
2. 길이
슬라이스 원소의 갯수 입니다. 내장함수 len 에 의해 반환됩니다.
3. 용량
슬라이스 내부 배열의 시작과 끝 사이에 있는 원소 갯수 입니다. 내장함수 cap은 용량을 반환합니다.
슬라이스 항목의 추가
슬라이스 항목의 추가에는 내장함수 append를 이용합니다.
var x []int
x = append(x, 1)
x = append(x, 10)
fmt.Println(x)
x = append(x, 3)
fmt.Println(x)
출력 :
[1 10 3]
아래 코드처럼 삭제를 할 수도 있습니다.
var x []int
x = append(x, 1)
x = append(x, 10)
x = append(x, 3)
fmt.Println(x)
x = x[:len(x)-1]
fmt.Println(x)
출력 :
[1 10 3]
[1 10]
삭제를 자주 사용하는 경우 별도의 remove 함수를 만들어야 합니다.
'CS > Go' 카테고리의 다른 글
[Go programming] 함수를 선언하고 값 반환하기 (3) | 2023.11.12 |
---|---|
Go programming 복합 타입 - 배열 에 대하여 (0) | 2023.07.29 |
go programming - byte array 숫자에 콤마를 붙이는 방법 (0) | 2023.07.23 |
[Go programming] Requesting http get method to an url from an argument (0) | 2023.06.24 |
[Go언어연습] 중복 된 내용이 있는 파일명 리스트를 출력하는 프로그램 (0) | 2023.06.06 |