【Golang系列】-结构体的初始化

2022-03-17

结构体的初始化

未初始化的结构体,成员都是0值,int 0,float 0.0 ,bool false, string nil nil

示例:

package main

import "fmt"

func main() {
    type Person struct {
        id, age     int
        name, email string
    }

    var tom Person
    fmt.Println(tom)
}

使用键值对对结构体进行初始化

package main

import "fmt"

func main() {
    type Person struct {
        id, age     int
        name, email string
    }

    caolihui := Person{
        id:    1,
        age:   30,
        name:  "caolihui",
        email: "caolihui@email.com",
    }

    fmt.Println(caolihui)
}

使用值的列表初始化:

package main

import "fmt"

func main() {
    type Person struct {
        id, age     int
        name, email string
    }

    caolihui := Person{
        1,
        30,
        "caolihui",
        "caolihui@email.com",
    }

    fmt.Println(caolihui)
}

注意:

  • 必须初始化结构体的所有字段
  • 初始值的填充顺序必须与字段在结构体中的声明顺序一致
  • 该方式不能和 键值对初始方式混用

部分成员初始化:

用不到成员可以不初始化

package main

import "fmt"

func main() {
    type Person struct {
        id, age     int
        name, email string
    }

    caolihui := Person{
        id:   1,
        name: "caolihui",
    }

    fmt.Println(caolihui)
}