,
package main
import "fmt"
type MyStruct struct {
v1 string
v2 int
}
type MyMap map[string]MyStruct
func main() {
m := MyMap{
"unum": MyStruct{"I", 1},
"duo": MyStruct{"II", 2},
}
fmt.Println("before:")
for k, v := range m {
fmt.Println(k, v)
}
var k string
k = "unum"
if v, ok := m[k]; ok {
v.v1 = "one"
v.v2 = 1
m[k] = v
}
k = "tria"
if v, ok := m[k]; ok {
v.v1 = "III"
v.v2 = 3
m[k] = v
}
fmt.Println("after:")
for k, v := range m {
fmt.Println(k, v)
}
}
출력 : 이동에
before:
unum {I 1}
duo {II 2}
after:
unum {one 1}
duo {II 2}
당신이 값에 대한 쓰기 액세스 권한이있는지도를 반복하려고합니까? –
Go에는 iterator 데이터 유형이 없으므로 Go *에서 C++을 작성하지 말고 대신 원하는 작업을 생각하고 진행중인 작업에 Go의 기능을 적용해야합니다. 그래서 lazy1의 답이 맞을 것입니다. 그러나 당신이 달성하고자하는 것은 완전히 분명한 것은 아닙니다. – macbirdie