遇到一个需求,需要追踪变量的最终情况。defer比较合适,但是写了变量和指针都无效,于是试了试:
变量,变量地址,指针的使用情况
func TestDefer(t *testing.T) {
a := 0
b := "hello"
c := "beautiful"
var d *string
defer func(a int, b string, c, d *string) {
log.Println(a, b, *c, d)
//output 0 hello girl <nil>
}(a, b, &c, d)
a = 1
b = "word"
c = "girl"
d = &b
}
所以如果想要在defer里追综一个变量
需要传 变量的地址,不能用指针变量