2016-10-15 3 views
1

I持ってそのキータイプで、次のmapstruct匿名:地図検索、匿名構造体のキー

var data map[struct{ pID, bID int }]string 

質問:はどのように私はdataに値を設定し、実際に取得するためのキーを/構築に行きますか?

私は、すべてのコンパイルエラーで結果、これらを試してみた:それは私はタイプ名を持つことなく、文字通りの化合物を形成することはできませんが、ないタイプ名が存在しないようです

data[{1,2}] = "ok" 
data[{pID: 1, bID 2}] = "ok" 


この関連の質問はキーmapとしてanymous structを使用しますが、ない:

答えて

2

あなたにも匿名のキーを作成することができます、このようなもの:

func main() { 

    data := map[struct{ pID, bID int }]string{} 

    key := struct{pID, bID int}{1, 2} 
    data[key] = "abc" 

    data[struct{pID, bID int}{3, 4}] = "cha cha cha" 


    fmt.Printf("%+v\n\n", data) 

    fmt.Printf("'%s' '%s'\n", data[key], data[struct{pID, bID int}{3, 4}]) 
} 

フルファイル:https://play.golang.org/p/2q11qiwxuI

+1

これは特に簡潔ではありません。私はちょうど普通の名前の構造体を使用すると思います。ありがとう! –

+1

あなたは歓迎です、はい、それは冗長に見えますが、少なくともあなたは初期化時に必要な方法でキーを使用することができます:https://play.golang.org/p/5KxO_SBJ97 –

関連する問題