반응형
# 슬라이스(slice)
자동으로 요소의 크기를 지정할 수 있다
# 슬라이스 선언
var 변수명 []타입
예시
var slice []int
- 배열과 다르게 크기를 지정하지 않는다.
if len(slice)==0 {
fmt.Println("현재 슬라이스 길이는 0 입니다.")
}
- 데이터의 값이 없어서 길이는 0이다.
slice[0] =1
fmt.Println("슬라이스 0 : ",slice[0]) //패닉 발생
panic: runtime error: index out of range [0] with length 0
에러 메시지가 뜬다.
- 길이가 0인데 slice[0]에 값을 넣으면 패닉이 발생한다.
# 초기값 지정하는 방법
1) {}를 이용하는 방법
변수명 := []타입{값1,값2,....}
변수명 := []타입{1:값1, 4:값4}
예시
nums1 := []int{1,2,3}
nums2 := []int{1:5,10:2,15:3}
fmt.Println("nums1 결과값: ",nums1)
fmt.Println("nums2 결과값: ",nums2)
str := []string{"안녕하세요","유지니", 5:"하하하"}
boolean := []bool{true,3:false}
float := []float64{3.0, 5:5.2}
fmt.Println("string 예시 :",str)
fmt.Println("boolean 예시 :",boolean)
fmt.Println("float 예시 :",float)
결과
nums1 결과값: [1 2 3]
nums2 결과값: [0 5 0 0 0 0 0 0 0 0 2 0 0 0 0 3]
string 예시 : [안녕하세요 유지니 하하하]
boolean 예시 : [true false false false]
float 예시 : [3 0 0 0 0 5.2]
2) make 이용하는 방법
var 변수명 = make([]타입, 길이)
예시
var m = make([]int, 3)
m[1]=5
fmt.Println("make 의 예시 : ",m)
- int의 기본 값은 0이다.
- 길이를 3으로 만들었다.
- index를 0,1,2 중에 값을 넣을 수 있다 ex) m[1]=5
결과
make 의 예시 : [0 5 0]
# 슬라이스 읽기
- 배열과 똑같은 방법으로 for문이나 for range를 이용해서 읽을 수 있다.
예시
for i := 0; i < len(nums1); i++{
fmt.Println("for문 값:",nums1[i])
}
for _, v := range nums1 {
fmt.Println("for range 값: ",v)
}
결과
for문 값: 2
for문 값: 3
for range 값: 1
for range 값: 2
for range 값: 3
# 슬라이스에 값 추가하기(append)
- 데이터를 추가 했을 때 길이가 늘어날 수 있다.
- 추가할때 append 함수를 사용한다
# append 함수
appened(슬라이스변수명, 추가값)
1) 기존 변수를 복사해서 다른 변수에 넣고 값을 추가 하는 방법
예시
add := []int{1,2}
c := append(add,6)
fmt.Println("add 값 : ", add)
fmt.Println("c 값 : ", c)
결과
add 값 : [1 2]
c 값 : [1 2 6]
2) 기존 변수에 바로 추가하는 방법
예시
add2 := []int{1,2,3}
add2 = append(add2,6)
fmt.Println("add2 값 : ", add2)
결과
add2 값 : [1 2 3 6]
3) 여러가지 값을 넣는 방법
예시
add3 := []int{1,2}
add3 = append(add3,6,4,2)
fmt.Println("add3 값 : ", add3)
결과
add3 값 : [1 2 6 4 2]
4) for문을 이용해서 값 넣는 방법
예시
var add4 []int
fmt.Println("for문 전 add4 값 : ", add4)
for i := 0; i < 10; i++{
add4 = append(add4,i)
}
fmt.Println("for문 후 add3 값 : ", add4)
결과
fmt.Println("for문 후 add4 값 : ", add4)
반응형
'Study > Go 언어' 카테고리의 다른 글
[golang] 숫자 랜덤으로 생성하기 (0) | 2022.03.05 |
---|---|
[golang] 10자리이하 숫자를 입력하면 앞에 0을 채워서 10자리 수 만들기 (0) | 2022.02.28 |
[golang] 환경변수 설정하는 방법 (0) | 2022.02.20 |
[golang] 타입(type) 확인 하는 방법 (0) | 2022.02.19 |
[golang] 구조체(struct) 공부하기 (0) | 2022.02.18 |