I read "An introduction to programming in GO" by Caleb Doxsey. In chapter 6 he had the following example:
package main
import "fmt"
func main() {
elements := map[string]map[string]string{
"H": map[string]string{
"name": "Hydrogen",
"state": "gas",
},
"He": map[string]string{
"name": "Helium",
"state": "gas",
},
"Li": map[string]string{
"name": "Lithium",
"state": "solid",
},
"Be": map[string]string{
"name": "Beryllium",
"state": "solid",
},
"B": map[string]string{
"name": "Boron",
"state": "solid",
},
"C": map[string]string{
"name": "Carbon",
"state": "solid",
},
"N": map[string]string{
"name": "Nitrogen",
"state": "gas",
},
"O": map[string]string{
"name": "Oxygen",
"state": "gas",
},
"F": map[string]string{
"name": "Fluorine",
"state": "gas",
},
"Ne": map[string]string{
"name": "Neon",
"state": "gas",
},
}
if el, ok := elements["Li"]; ok {
fmt.Println(el["name"], el["state"])
}
}
He commented the example that "although maps are often used like this, in chapter 9 we will see a better way to store structured information." Chapter 9 is about Structs and Interfaces.
What does a better way to store structured information with structs and interfaces look like for the example above?
Thank you in advance.