【Go】map,struct
map
package main import "fmt" func main() { // 映射(map)的3种声明方法 // 1.声明并初始化 studentsAge := map[string]int{ "john": 32, "bob": 31, } // 2.用make函数初始化空映射 studentsAge := make(map[string]int) // 3.声明nil映射. 这种映射不可添加项 // var studentsAge map[string]int // 添加项 studentsAge["john"] = 32 studentsAge["bob"] = 31 fmt.Println(studentsAge) // 输出: // map[bob:31 john:32] // 删除项 delete(studentsAge, "john") // 如果你尝试删除不存在的项,Go 不会执行 panic // 访问项 fmt.Println("Christy's age is", studentsAge["christy"]) // 若映射没有该key, 则输出变量默认值, 这里int默认值为0 // 但有时需要知道某个项是否存在。 在 Go 中,映射的下标表示法可生成两个值。 第一个是项的值。 第二个是指示键是否存在的布尔型标志。 age, exist := studentsAge["christy"] // 可使用基于范围的循环 for name, age := range studentsAge { fmt.Printf("%s\t%d\n", name, age) // 输出: // john 32 // bob 31 }
struct
package main import "fmt" type Person struct { ID int FirstName string LastName string Address string } // struct嵌套 type Employee struct { Person ManagerID int } func main() { // 嵌套时, 直接声明为Person部分. 如果不这样做, 需要employee.Person.LastName employee := Employee{ Person: Person{ FirstName: "John", }, } employee.LastName = "Doe" fmt.Println(employee.LastName) }

浙公网安备 33010602011771号