在Golang中传递指向地图的指针

时间:2013-02-18 02:57:21

标签: pointers map go

我在Go中创建指向地图的指针时遇到了一些麻烦。如果我正确传递map参数,你能告诉我吗?它将整数值与结构对。

    type symbol_table struct{
                   ---
                   ---
                   ---
    }
    //is the map parameter being called correctly?
func TD(..., symbolMAP *map[int]symbol_table, ...){

                   ---
                   ---
                   ---
    }
    func main(){
               symbolMAP:=make(map[int] symbol_table)
               TD(&symbolMAP)
       }

2 个答案:

答案 0 :(得分:9)

是的,你正确地传递了它,虽然不是惯用的。正如系统指出的那样,传递地图本身而不是指向它的指针几乎总是更好。

现在对整个问题发表评论,拉胡尔,你不应该“稍后再回到这篇文章”。这不是使用stackoverflow的方法。你问的问题相对简单(“如果我正确传递map参数,你可以告诉我吗?”)你提供了足够的信息和示例代码,以便得到一个简单的答案,比如我刚给出的答案。你应该接受一个答案,或者,如果你非常后悔问你的问题,请完全删除这个问题。

您提到了其他可能存在的问题。这很好,但他们不在这里,没有理由把这个问题留在一个没有答案的状态。当您撰写新问题时,请将其作为新问题和单独问题发布。

答案 1 :(得分:6)

正如评论中已经提到的,无需将指针传递给地图

地图已经是参考类型。将从其他变量中观察到地图中的变化。

另见Q / A:Go - Pointer to map