I am a beginner of Go.
I wrote this code, but an error occurred.
How should I write a map which contains string and []string properties?
package main
import (
"fmt"
)
func main() {
prof := make(map[string]map[string]interface{})
prof["me"] = map[string]string{
"name": "John Lennon",
"email": "[email protected]",
"phone": "090-0000-0000",
"occupation": []string{"Programmer", "System Engineer"},
"language": []string{"Go", "Java", "Python", "PHP", "JavaScript", "SQL"},
"hobby": []string{"Photography", "Traveling", "Fishing", "Eating"},
}
fmt.Println(prof)
}
This error is from Ideone.
# _/home/NcWlmE
./prog.go:14: cannot use []string literal (type []string) as type string in map value
./prog.go:15: cannot use []string literal (type []string) as type string in map value
./prog.go:16: cannot use []string literal (type []string) as type string in map value
interface{}, you have to cast your values back. Also, in your case defining a struct is preferable (Go is not JS).