40 lines
479 B
Go
40 lines
479 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type S1 struct {
|
|
T1 []*S2
|
|
T2 []byte
|
|
}
|
|
|
|
type S2 struct {
|
|
T3 int
|
|
T4 *S3
|
|
}
|
|
|
|
type S3 struct {
|
|
T5 int
|
|
T6 int
|
|
T7 int
|
|
}
|
|
|
|
func main() {
|
|
a := map[string]S1{}
|
|
s1 := S1{}
|
|
for i := 0; i < 3; i++ {
|
|
s3 := S3{T5: i, T7: i, T6: i}
|
|
s2 := S2{T4: &s3}
|
|
s1.T1 = append(s1.T1, &s2)
|
|
}
|
|
a["test"] = s1
|
|
for _, value := range a {
|
|
for _, d := range value.T1 {
|
|
d.T4.T5 = 222
|
|
}
|
|
}
|
|
for _, value := range a["test"].T1 {
|
|
fmt.Printf("%+v", value.T4)
|
|
}
|
|
|
|
}
|