Golang create a slice of maps

scott picture scott · Feb 12, 2016 · Viewed 14.7k times · Source

I was trying to create a slice of maps the following way.

keyvalue := make(map[string]interface{})
keyvalueslice := make([]keyvalue, 1, 1)

I was trying to create it just like the way string slice is created, however I am getting an error saying keyvalue is not a type. I am creating this slice to append data to keyvalueslice variable later.

Can someone explain what is wrong?

Answer

wlredeye picture wlredeye · Feb 12, 2016

keyvalue is a variable not a type, you can't create a slice of variables. If you want to define custom type you can do this like

type keyvalue map[string]interface{}

then you can create a slice of keyvalues:

keyvalueslice := make([]keyvalue, 1, 1)

Example on playground

Or you can do this without defining custom type:

keyvalueslice := make([]map[string]interface{}, 1, 1)