为什么闭包函数,内输出全局变量地址不同。请教了。

andylau004 · · 3215 次点击
没有啊,你的用法没问题。虽然都是值拷贝,但区别是在于拷贝目标对象,还是拷贝对象的指针。你的例子,拷贝的是mutext的指针,它们依然指向的mutext(实参)的地址。 打印语句: ```code fmt.Printf( "g_pMutex=%p \n", g_pMutex ) ``` 与 ```code fmt.Printf( "pMutex=%p \n", pMutex ) ``` 的输出相同。说明它们指向的全局参数是同一个,也因为相同,所以才能够同时操作,达到全局锁的目的。 简而言之,你的代码,可以理解为就是传递对象。
#7
更多评论
结果,再发一次 2016-08-17 00:43:40 1471365820260269854 [Debug] t_Mutex.go:23 [Test_Mutex Beg] 2016-08-17 00:43:40 1471365820260280118 [Debug] t_Mutex.go:29 [g_pMutex=0XAEA460] 2016-08-17 00:43:40 1471365820260282767 [Debug] t_Mutex.go:35 [TestUse Beg] 2016-08-17 00:43:40 1471365820260284942 [Debug] t_Mutex.go:38 [pMutex=0XC82002C128] 2016-08-17 00:43:40 1471365820260287015 [Debug] t_Mutex.go:44 [TestUse End] 2016-08-17 00:43:40 1471365820260288973 [Debug] t_Mutex.go:48 [Test_Mutex End]
#1
![333.png](http://studygolang.qiniudn.com/160817/c20def1bc7af5edff6c5ce4ac5635521.png)
#2