append 함수
2025. 6. 8. 18:39ㆍGo
length 가 넘을시 새로운 주소 리턴
func main() {
// 길이 2, 용량 2 슬라이스 생성
s := make([]int, 2, 2)
s[0], s[1] = 1, 2
// 내부 배열 주소 출력 (첫 요소 주소)
fmt.Printf("Before append: %p\n", &s[0])
// 용량 꽉 찼으니 새 배열 할당됨
s = append(s, 3)
// 내부 배열 주소 출력 (첫 요소 주소)
fmt.Printf("After append: %p\n", &s[0])
// 결과 출력
fmt.Println("Slice:", s)
}
length가 넘지 않으면 기존의 배열 주소 리턴
func main() {
// 길이 2, 용량 5인 슬라이스 생성 (여유 용량 있음)
s := make([]int, 2, 5)
s[0], s[1] = 10, 20
// 첫 요소 주소 출력
fmt.Printf("Before append: %p\n", &s[0])
// 용량이 충분해서 새 배열 할당 없이 append 됨
s = append(s, 30)
// 첫 요소 주소 다시 출력
fmt.Printf("After append: %p\n", &s[0])
fmt.Println("Slice:", s)
}
'Go' 카테고리의 다른 글
Go의 구조체 (0) | 2025.06.08 |
---|---|
Scan, Scanf, Scan 차이 정리 (0) | 2025.06.03 |
Hello Go World 코드 (0) | 2025.06.03 |