Skip to content

Instantly share code, notes, and snippets.

@Shaked
Created August 22, 2014 12:39
Show Gist options
  • Save Shaked/f2b793962d50d0f3cfff to your computer and use it in GitHub Desktop.
Save Shaked/f2b793962d50d0f3cfff to your computer and use it in GitHub Desktop.
map-vs-slice-vs-array.go
package main
import "log"
const (
KEY_1 = iota
KEY_2
KEY_3
KEY_4
KEY_5
)
func main() {
m := runMap()
log.Printf("%+v", m)
s := runSlice()
log.Printf("%+v", s)
}
func runMap() map[string]string {
data := map[string]string{
"key": "val",
}
m := make(map[string]string)
for k, v := range data {
m[k] = v
}
return m
}
func runSlice() []string {
data := []string{
KEY_1: "val_1",
KEY_2: "val_2",
KEY_3: "val_3",
KEY_4: "val_4",
KEY_5: "val_5",
}
m := make([]string, len(data))
for k, v := range data {
m[k] = v
}
return m
}
func runSliceWithAppend() []string {
data := []string{
KEY_1: "val_1",
KEY_2: "val_2",
KEY_3: "val_3",
}
data = append(data, []string{KEY_4: "val_4"}...)
data = append(data, []string{KEY_5: "val_5"}...)
m := make([]string, len(data))
for k, v := range data {
m[k] = v
}
return m
}
func runArray() []string {
data := [...]string{
KEY_1: "val_1",
KEY_2: "val_2",
KEY_3: "val_3",
KEY_4: "val_4",
KEY_5: "val_5",
}
m := make([]string, len(data))
for k, v := range data {
m[k] = v
}
return m
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment