사이드 프로젝트 중 데이터 필터링 로직 구현 중입니다. 슬라이스를 복사해서 append 하려는데 원본 값이 같이 바뀝니다.
코드:
package main
import "fmt"
func main() {
src := []int{1, 2, 3}
dst := src
dst = append(dst, 4)
fmt.Println("src:", src)
fmt.Println("dst:", dst)
}
오류: src: [1 2 3 4] (또는 런타임에 따라 예기치 않은 값 변경 발생)
시도: 슬라이스 할당 방식 변경, capacity 확인.
질문: slice를 완전히 분리해서 append 하려면 copy 함수 외에 어떤 방법을 써야 합니까?
댓글2
모든 이야기1439
가벼운 안부부터 깊은 생각까지, 함께 나눠요.
총 1439개의 이야기
그거 그냥 dst := make([]int, len(src)) 하고 복사하는 게 제일 깔끔함
아니면 그냥 처음부터 새 슬라이스 만들어서
append로 밀어넣으셈ㅋㅋ