圍棋

2012-09-20 66 views
0
追加映射到地圖

我想建立一個地圖[字符串]地圖[字符串]字符串,這將是這個樣子:結構的圍棋

{ "notes": 
    { 
    "Title":note.Title, 
    "Body":note.Body, 
    }, 
    { 
    "Title":note.Title, 
    "Body":note.Body, 
    }, 
    { 
    "Title":note.Title, 
    "Body":note.Body, 
    }, 
} 

從結構(注)(注)

我也曾想過做這樣的:

for _, note := range notes { 
     thisNote := map[string]string{ 
      "Title":note.Title, 
      "Body":note.Body, 
     } 

     content["notes"] = append(content["notes"], thisNote) 
} 

但顯然是行不通的,因爲我想一個地圖追加到地圖,而不是一個切片。

有沒有一個真正簡單的解決方案,我失蹤了?

+1

待辦事項你的意思是你正在建立一個地圖[string] [] map [string] string? –

+0

我試圖建立一個映射傳遞給小鬍子(模板引擎),它需要一個標識符(「註釋」)和值的映射。所以我想是的,我不好笑明白它的區別(我對Go非常陌生) – Zen

+0

嗯,我對Mustache一無所知,但如果數據真的如你所描述的那麼你應該試試一下[string] [] map [string]字符串,當然你的append將在這種情況下工作。 –

回答

1

我敢肯定,你可以用一個結構類似這樣的替代,因爲鬍子接收數據作爲interface{}

func handler(w http.ResponseWriter, r *http.Request) { 
    var data struct { 
     Notes []*Note 
    } 

    notes := ... 
    data.Notes = notes 
    tmpl := ... 
    templ.Render(data, w) 
} 
+0

我意識到這是某人不熟悉鬍鬚(我的問題不是很具體)不能回答,但這使得我的生活變得如此簡單!我沒有意識到這些可以直接傳遞! – Zen

1

感謝Running Wild這個答案,它在評論中,但我想我會在這裏添加它爲任何人嘗試做同樣的事情。

的問題是,我需要做一個map[string][]map[string]string而非map[string]map[string]string