2013-02-18 5 views
7

Goの地図へのポインタの作成に少し問題があります。地図のパラメータを正しく渡しているかどうか教えてください。これは、整数値を構造体とペアにします。Golangの地図へのポインタの受け渡し

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) 
     } 
+7

なぜポインタを渡すのですか?マップはすでに参照型です。マップの変更は他の変数からも観察されます。そして、どんなエラーが出ていますか?あなたの質問には情報がありません。 –

+0

ありがとうございました、私はMAPがすでに参照型であることを伝えた後に気付きました。私は自分のコードでそれを修正しました。私は、私の問題は他の場所にあると強く信じています。私は私の問題をよりよく知っているときにこのポストに戻ってきます。 – progfan

+1

「トラブル」とはどういう意味ですか?何らかのコンパイルエラーが発生しますか?正しい出力が得られませんか? – newacct

答えて

8

はい、正しくは、慣習的ではありませんが、正しく渡しています。システムが指摘したように、マップ自体をポインタに渡すのではなく、マップ自体を渡すことは、ほとんど常に良い方法です。

質問全体へのコメント、Rahul、「後でこの投稿に戻ってはいけない」それはstackoverflowを使用する方法ではありません。あなたが質問した質問は、比較的単純でした(「地図パラメータを正しく渡しているかどうか教えてください」)。サンプルコードに十分な情報を提供して、ちょうど私が与えたような簡単な答えを可能にした。あなたは答えを受け入れるか、あなたの質問にひどく後悔した場合は、質問全体を削除する必要があります。

他にも質問がありました。これは問題ありませんが、彼らはここにいないので、未回答の状態でこの質問を残す理由はありません。新しい質問を作成したら、新しい質問と別の質問として投稿します。

+0

ありがとうございます。私はあなたの指針を念頭に置いておきます! – progfan

+1

なぜマップ自体をより良く渡す方が良いですか?私が持っているマップは構造体の状態であり、更新されることが重要ですが、渡すマップを選択できるようにしたいので、更新したいマップへのポインタを渡すことが重要です。 – Pinocchio

5

コメントにすでに記載されているように、は、マップへのポインタを渡す必要はありません。

マップはすでに参照型です。マップの変更は他の変数からも観察されます。

も参照してください。Q/A:Go - Pointer to map

関連する問題