📘 Go 언어 6강 - 배열과 슬라이스
이번 시간에는 배열(array)과 슬라이스(slice)를 배웁니다.
Go에선 배열보다 슬라이스를 더 많이 사용하며, 유연성과 성능 모두 뛰어납니다.
1️⃣ 배열 선언과 초기화
var a [3]int
a[0] = 1
a[1] = 2
a[2] = 3
b := [3]int{4, 5, 6}
fmt.Println(a) // [1 2 3]
fmt.Println(b) // [4 5 6]
배열은 길이가 고정되므로 유연성이 떨어져요.
2️⃣ 슬라이스 선언
nums := []int{10, 20, 30}
fmt.Println(nums) // [10 20 30]
슬라이스는 내부적으로 배열을 참조하며, 길이를 자동 관리해줍니다.
3️⃣ append로 슬라이스 확장
nums := []int{1, 2}
nums = append(nums, 3, 4)
fmt.Println(nums) // [1 2 3 4]
4️⃣ 슬라이스 잘라쓰기 (slicing)
data := []int{1, 2, 3, 4, 5}
sub := data[1:4] // index 1~3까지
fmt.Println(sub) // [2 3 4]
💡 예제 1: 슬라이스 반복 출력
fruits := []string{"사과", "바나나", "포도"}
for i, fruit := range fruits {
fmt.Printf("%d: %s\n", i, fruit)
}
💡 예제 2: 슬라이스에 값 추가하고 총합 계산
numbers := []int{1, 2, 3}
numbers = append(numbers, 4, 5)
sum := 0
for _, n := range numbers {
sum += n
}
fmt.Println("총합:", sum) // 15
🧠 요약
- 배열: 고정 길이, 기본 자료형
- 슬라이스: 배열을 감싸는 구조로, 실전에서 많이 사용
append
,slicing
,range
등과 잘 어울림
한 줄 요약: "슬라이스는 Go에서 가장 많이 쓰이는 컬렉션입니다!"