废话少说,直接上代码:
type a1 struct {
key1 string
key2 string
key3 string
}
testData := []a1{
a1{"1","2", "3"},
a1{"4","5", "6"},
}
上面的代码定义了一个结构体,声明了一个数组。
采用循环变量可以修改数组中结构体的取值:
for i := 0; i < len(testData); i++ {
testData[i].key3 = "999"
}
fmt.Printf("%v", testData)
输出:[{1 2 999} {4 5 999}]
采用 range 获取的下标值,然后用下标方式引用的数组项也可以直接修改:
for idx, _ := range testData {
testData[idx].key3 = "999"
}
fmt.Printf("%v", testData)
输出:[{1 2 999} {4 5 999}]
采用 range 获取数组项不能修改数组中结构体的值:
for _, item := range testData {
item.key3 = "999"
}
fmt.Printf("%v", testData)
输出:[{1 2 3} {4 5 6}]
有疑问加站长微信联系(非本文作者)