Go语言中地址传递引出的不解问题

thao888 · · 2922 次点击
import "fmt" type Student struct { Name string } func remove(stu *Student) { fmt.Println("2----", stu) *stu = Student{"我爱你"} fmt.Println("3----", stu) } func main() { stu := &Student{"中国"} fmt.Println("1----", stu) remove(stu) fmt.Println("4----", stu) } 你要修改的是局部指针指向的变量的值,所以用*stu改变其值,否则stu只是改变了方法作用域内局部指针指向的变量,并没有改变外部指针指向的变量的值域
#2
更多评论
指针是对指向内容的引用,不是对指针变量的引用
#1
第一次回复,忘了用代码块了 ·*stu = Student{"我爱你"}·
#3