1. 程式人生 > 其它 >GO語言學習筆記——結構體

GO語言學習筆記——結構體

1、建立結構體

func createStruct()  {
    //結構體中的成員變數不能加var關鍵字
    type Student struct {
        id int
        name string
        age int
        addr string
    }
}

2、結構體初始化

func createStruct()  {
    //結構體中的成員變數不能加var關鍵字
    type Student struct {
        id int
        name string
        age int
        addr 
string } //結構體順序初始化 var student Student = Student{1,"小松",20,"江蘇無錫"} //部分初始化 var student Student = Student{name:"小松",age:18} //通過結構體.成員 var stu Student stu.id = 18 stu.name = "test" stu.age = 10 }

3、結構體與陣列

func arrayStruct()  {
    var arr[3] Student = [3]Student{
        {
101,"小松",21,"江蘇省無錫市"}, {102,"小明",20,"陝西省西安市"}, {103,"小豬",17,"上海市黃浦區"}, } arr[0].age = 32 fmt.Println(arr) fmt.Println(arr[0]) fmt.Println(arr[0].age) //通過迴圈來輸出結構體陣列中的內容 for i := 0; i < len(arr); i++ { fmt.Println(arr[i].age) } for k, v := range arr { fmt.Println(k) fmt.Println(v) } }

4、結構體與切片

func sliceStruct()  {
    var slice []Student = []Student{
        {101,"小松",21,"江蘇省無錫市"},
        {102,"小明",20,"陝西省西安市"},
        {103,"小豬",17,"上海市黃浦區"},
        {104,"小紅",17,"江蘇省無錫市"},
    }

    fmt.Println(slice[3])
    fmt.Println(slice[0].age)
    slice[0].age = 1000
    fmt.Println(slice[0].age)
    //迴圈遍歷
    for i := 0; i < len(slice); i++ {
        fmt.Println(slice[i].name)
    }

    for k, v := range slice {
        fmt.Println(k)
        fmt.Println(v)
    }
    //使用append追加資料
    slice = append(slice,Student{105,"小六",24,"河南省信陽市"})

    fmt.Println(slice)
}

5、結構體與map

func mapStruct()  {
    m := make(map[int]Student)

    m[0] = Student{101,"小松",21,"江蘇省無錫市"}
    m[1] = Student{102,"小明",20,"陝西省西安市"}

    fmt.Println(m)
}