본문으로 바로가기
COMMUNITY모든 이야기

Go에서 슬라이스에 append 했는데 원본 값이 안 바뀌는 이유가 뭘까요?

빗방울 2026.10.31 12:44 1분 읽기 조회 15 · 추천 2

토이 프로젝트로 간단한 리스트 관리 기능을 만들고 있는데, 함수 내부에서 슬라이스에 값을 추가해도 밖에서는 반영이 안 되네요.

코드:

package main

import "fmt"

func addElement(s []int) {
	s = append(s, 4)
}

func main() {
	nums := []int{1, 2, 3}
	addElement(nums)
	fmt.Println(nums)
}

오류: [1 2 3] (기대값: [1 2 3 4])

시도: 슬라이스를 포인터로 넘겨야 하는 건지 고민해서 구글링해봤는데 잘 모르겠어요.

질문: 함수 안에서 append를 호출했는데 왜 main 함수에 있는 원본 슬라이스에는 값이 추가되지 않는 건가요?

모든 이야기1488

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1488개의 이야기
댓글