【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)
}

 

posted @ 2021-10-30 16:01  Raylan  阅读(148)  评论(0)    收藏  举报