Go에서 이미 값이 할당된 다중 구조체(nested structure)의 내부 배열 구조체에 어떤 값을 변경할 때는
for 문에서 인덱스를 사용해서 직접 접근해야한다.
가끔 습관적으로 for k, v := range S 를 하며 v를 통해 값을 할당하는 실수를 저지르게 된다.
type Outer struct {
name string
inner []Inner
}
type Inner struct {
A int
B int
}
func changeInner() {
outer := Outer{
name: "togomi",
inner: []Inner{
{
A: 5,
B: 6,
},
},
}
for k, v := range outer.inner {
// 잘못된 방법
v.A = 1
v.B = 2
// 옳은 방법
outer.inner[k].A = 1
outer.inner[k].B = 2
}
}
'공부 > Go' 카테고리의 다른 글
Go 테스트 코드 깔끔하게 작성하기 (1) | 2024.08.28 |
---|---|
go gRPC 서버 테스트 코드 도움되는 글 (0) | 2024.07.25 |
golang http connection(socket) 재사용하기 (0) | 2023.06.22 |
k8s client-go custom resource 생성(post 사용 시 주의점) (0) | 2022.09.15 |
Go API server template + Dockerfile & yaml (0) | 2022.07.09 |