Maps

You can make a map of maps with:

  1. elements : make(map[string]map[string]int)
  2. elements["H"] = map[string]int{
  3. "protons": 1,
  4. "neutrons": 0,
  5. }

But note, this is what you have struct for.

Python

  1. elements = {}
  2. elements["H"] = 1
  3. print elements["H"] # 1
  4.  
  5. # remove by key
  6. elements["O"] = 8
  7. elements.pop("O")
  8.  
  9. # do something depending on the being there
  10. if "O" in elements:
  11. print elements["O"]
  12. if "H" in elements:
  13. print elements["H"]

Go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. elements := make(map[string]int)
  7. elements["H"] = 1
  8. fmt.Println(elements["H"])
  9.  
  10. // remove by key
  11. elements["O"] = 8
  12. delete(elements, "O")
  13.  
  14. // only do something with a element if it's in the map
  15. if number, ok := elements["O"]; ok {
  16. fmt.Println(number) // won't be printed
  17. }
  18. if number, ok := elements["H"]; ok {
  19. fmt.Println(number) // 1
  20. }
  21.  
  22. }