首先让我们来看两段代码
1. 下面的程序是否可以正常结束?
func main() {
v := []int{1, 2, 3}
for i := range v {
v = append(v, i)
}
}
func IndexArray() {
a := [...]int{1, 2, 3, 4, 5, 6, 7, 8}
for i := range a {
a[3] = 100
if i == 3 {
fmt.Println("IndexArray", i, a[i])
}
}
}
func IndexValueArray() {
a := [...]int{1, 2, 3, 4, 5, 6, 7, 8}
for i, v := range a {
a[3] = 100
if i == 3 {
fmt.Println("IndexValueArray", i, v)
}
}
}
func IndexValueArrayPtr() {
a := [...]int{1, 2, 3, 4, 5, 6, 7, 8}
for i, v := range &a {
a[3] = 100
if i == 3 {
fmt.Println("IndexValueArrayPtr", i, v)
}
}
}
func main() {
IndexArray()
IndexValueArray()
IndexValueArrayPtr()
}