ksundev 님의 블로그

Arrays and Slices 본문

[개발] Go/기본문법

Arrays and Slices

ksundev 2025. 6. 10. 00:42

# Array

Array의 문법은 위와 같고, 개수(크기)를 미리 지정할 수 있다.

크기를 지정하고 싶지 않은 경우 숫자가 들어가는 부분을 비워서 쓰면 된다. 이를 Slice라고 부른다.

 

# Slice

주의할 점은, append 자체가 전달받은 array를 수정하지 않고 append 된 새로운 array를 반환해준다.

따라서 python과 같은 문법으로 append를 생각하면 안되고

names = append(names, "gogo") 와 같이 새로운 array 자체로 값을 변경해주어야 한다.

# 비교

 

Array (배열)

var arr [5]int           // 크기 5로 고정
var arr2 = [3]int{1,2,3} // 크기 3으로 고정
var arr3 = [...]int{1,2,3,4} // 컴파일러가 크기 계산 (여전히 고정 크기)

Slice (슬라이스)

var slice []int              // 크기 지정 안 함
var slice2 = []int{1,2,3}    // 크기 지정 안 함
slice3 := make([]int, 5)     // 길이 5인 슬라이스 생성

핵심 차이점

Array:

  • 고정 크기 (컴파일 타임에 결정)
  • [5]int와 [3]int는 다른 타입
  • 값 타입 (복사됨)

Slice:

  • 동적 크기 (런타임에 변경 가능)
  • 참조 타입 (underlying array를 가리킴)
  • append() 함수로 요소 추가 가능

'[개발] Go > 기본문법' 카테고리의 다른 글

Struct  (0) 2025.06.10
Maps  (0) 2025.06.10
Pointers 🏷️  (0) 2025.06.09
If문과 Switch문  (4) 2025.06.09
Loop (반복문)  (0) 2025.06.01