七叶笔记 » golang编程 » Go语言自学系列 | golang结构体的初始化

Go语言自学系列 | golang结构体的初始化

视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中…]》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:


未初始化的结构体,成员都是零值 int 0 flow 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.Printf("tom: %v\n", tom)
}
  

运行结果

 [Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
tom: {0 0  }
  

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

实例

 package main

import "fmt"

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

    kite := Person{
        id:    1,
        name:  "kite",
        age:   20,
        email: "kite@gmail.com",
    }

    fmt.Printf("kite: %v\n", kite)
}
  

运行结果

 [Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
kite: {1 20 kite kite@gmail.com}
  

使用值的列表初始化

实例

 package main

import "fmt"

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

    kite := Person{
        1,
        20,
        "kite",
        "kite@gmail.com",
    }

    fmt.Printf("kite: %v\n", kite)
}
  

运行结果

 [Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
kite: {1 20 kite kite@gmail.com}
  

注意:

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

部分成员初始化

用不到的成员,可以不进行初始化

 package main

import "fmt"

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

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

    fmt.Printf("kite: %v\n", kite)
}
  

运行结果

 [Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
kite: {1 0 kite }
  

相关文章