9

我在 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)
       }
4

2 回答 2

12

是的,您正确地传递了它,尽管不是惯用的。正如系统所指出的,传递地图本身而不是指向它的指针几乎总是更好。

现在对整个问题发表评论,Rahul,你不应该“稍后再回到这篇文章”。这不是使用stackoverflow的方式。您提出的问题相对简单(“您能否让我知道我是否正确传递了 map 参数?”)并且您在示例代码中提供了足够的信息,以便提供简单的答案,例如我刚刚给出的答案。您应该接受答案,或者,如果您非常后悔提出问题,请完全删除该问题。

你提到了你可能有的其他问题。这很好,但他们不在这里,没有理由让这个问题处于未回答的状态。当您编写好新问题后,将它们作为新的和单独的问题发布。

于 2013-02-18T15:48:59.910 回答
6

正如评论中已经指出的那样,不需要将指针传递给 map

地图已经是一种引用类型。地图的变化将从其他变量中观察到。

另请参阅 Q/A:Go-Pointer to map

于 2015-01-19T22:32:57.267 回答