pass_map_struct.go raw

   1  package main
   2  
   3  type MapStruct struct {
   4  	M map[string]int32
   5  }
   6  
   7  func makeMapStruct() (sv MapStruct) {
   8  	sv = MapStruct{M: map[string]int32{"x": 42, "y": 99}}
   9  	return
  10  }
  11  
  12  func makeMapStructPtr() (sp *MapStruct) {
  13  	sp = &MapStruct{M: map[string]int32{"p": 100, "q": 200}}
  14  	return
  15  }
  16  
  17  func main() {
  18  	sv := makeMapStruct()
  19  	if sv.M["x"] == 42 && sv.M["y"] == 99 {
  20  		println("PASS:map-struct-value-return")
  21  	} else {
  22  		println("FAIL:map-struct-value-return")
  23  	}
  24  
  25  	sp := makeMapStructPtr()
  26  	if sp.M["p"] == 100 && sp.M["q"] == 200 {
  27  		println("PASS:map-struct-ptr-return")
  28  	} else {
  29  		println("FAIL:map-struct-ptr-return")
  30  	}
  31  }
  32