package main
import "fmt"
var spl = make([]int, 0, 10)
func main() {
a := 10
b := 20
spl = append(spl, a)
for _, val := range spl {
fmt.Printf("range方式修改前:%v\n",val)
val = b
fmt.Printf("range方式修改后:%v\n",val)
}
for _, val := range spl {
fmt.Printf("range方式修改后再次调用:%v\n",val)
}
}
range方式修改前:10
range方式修改后:20
range方式修改后再次调用:10
package main
import "fmt"
var spl = make([]int, 0, 10)
func main() {
a := 10
b := 20
spl = append(spl, a)
for i:=0;i<len(spl);i++{
fmt.Printf("下标方式修改前:%v\n",spl[i])
spl[i]=b
fmt.Printf("下标方式修改后:%v\n",spl[i])
}
for i:=0;i<len(spl);i++{
fmt.Printf("下标方式修改后再次调用:%v\n",spl[i])
}
}
下标方式修改前:10
下标方式修改后:20
下标方式修改后再次调用:20
我们可以看出下标访问可以修改切片的内容,而range访问时无法修改的。也就是说range访问只具有读权限。
本文通过对比下标访问和range访问在修改Go语言切片内容时的行为差异,阐述了range访问只具有读权限的特点,而下标访问则可以直接修改切片内容。
4562

被折叠的 条评论
为什么被折叠?



