切片指针跟指针切片的循环注意事项(重要)


package main

import "fmt"

func main() {
//var x,y,z = 1,2,3
var s []*int = []*int{new(int)}

for i:=range s {
fmt.Println(*s[i]) //s=nil会报错,空指针不可取值 = 0
}
var l *[]int

l=&[]int{1,2,3}
*l= append(*l, *l...)

for _,x:=range (*l) {
fmt.Println(x) // 被引用 1,2,3 1,2,3

}

}

//结果
0
1
2
3
1
2
3

Go