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

andylau004 · 2016-08-17 03:52:26 · 3421 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-08-17 03:52:26 的主题,其中的信息可能已经有所发展或是发生改变。

RT ..

import (

"fmt"  
"sync"

)

var g_pMutex *sync.Mutex var g_iCount int32

func Test_Mutex() { Logger.Debug( "Test_Mutex Beg" ) defer Logger.Debug( "Test_Mutex End" )

fmt.Println( "" )

 g_pMutex = new( sync.Mutex )
 Logger.Debugf( "g_pMutex=0X%X", &g_pMutex )

 g_iCount = 0

 pfnFunc := func ( pMutex *sync.Mutex ) {

     Logger.Debug( "TestUse Beg" )
     defer Logger.Debug( "TestUse End" )

     Logger.Debugf( "pMutex=0X%X", &pMutex )

     pMutex.Lock()
     defer pMutex.Unlock()

     g_iCount ++
 }

pfnFunc( g_pMutex )

}

结果如下 333.png

为啥 外面的 g_pMutex 和pfnFunc := func ( pMutex *sync.Mutex ) 函数内的pMutex 地址不同。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3421 次点击  
加入收藏 微博
8 回复  |  直到 2016-08-17 05:34:18
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传