一个有关Golang变量作用域的坑

sevenyuan ·
很简单的一个问题,你的 p 又重新定义了一次 不能用p,err :=foo() 直接用p,_ = foo() 就可以了
#2
更多评论
不是的,其实问题出在var p *int,此时p是木有值的,应该理解成对一个没有值、没有地址的变量使用*运算符会报错 可以这样实验: package main import "fmt" var p *int func main() { fmt.Printf("%v\n", *p) // 这样就会报错了 }
#1