defer 内追踪变量变化

遇到一个需求,需要追踪变量的最终情况。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里追综一个变量
需要传 变量的地址,不能用指针变量

原文地址:https://www.cnblogs.com/mingbai/p/godefer.html