(18条消息) Go语言自学系列 | golang结构体的初始化_COCOgsta的博客-CSDN博客_golang 结构体初始化



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

COCOgsta 于 2022-04-22 21:31:47 发布 54 收藏
分类专栏: 视频学习笔记 文章标签: golang

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

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

附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客


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

实例

  1. 1
    package main
  2. 2
  3. 3
    import "fmt"
  4. 4
  5. 5
    func main() {
  6. 6
    type Person struct {
  7. 7
    id, age int
  8. 8
    name, email string
  9. 9
    }
  10. 10
  11. 11
    var tom Person
  12. 12
    fmt.Printf("tom: %v\n", tom)
  13. 13
    }

运行结果

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

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

实例

  1. 1
    package main
  2. 2
  3. 3
    import "fmt"
  4. 4
  5. 5
    func main() {
  6. 6
    type Person struct {
  7. 7
    id, age int
  8. 8
    name, email string
  9. 9
    }
  10. 10
  11. 11
    kite := Person{
  12. 12
    id: 1,
  13. 13
    name: "kite",
  14. 14
    age: 20,
  15. 15
    email: "kite@gmail.com",
  16. 16
    }
  17. 17
  18. 18
    fmt.Printf("kite: %v\n", kite)
  19. 19
    }

运行结果

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

使用值的列表初始化

实例

  1. 1
    package main
  2. 2
  3. 3
    import "fmt"
  4. 4
  5. 5
    func main() {
  6. 6
    type Person struct {
  7. 7
    id, age int
  8. 8
    name, email string
  9. 9
    }
  10. 10
  11. 11
    kite := Person{
  12. 12
    1,
  13. 13
    20,
  14. 14
    "kite",
  15. 15
    "kite@gmail.com",
  16. 16
    }
  17. 17
  18. 18
    fmt.Printf("kite: %v\n", kite)
  19. 19
    }

运行结果

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

注意:

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

部分成员初始化

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

  1. 1
    package main
  2. 2
  3. 3
    import "fmt"
  4. 4
  5. 5
    func main() {
  6. 6
    type Person struct {
  7. 7
    id, age int
  8. 8
    name, email string
  9. 9
    }
  10. 10
  11. 11
    kite := Person{
  12. 12
    id: 1,
  13. 13
    name: "kite",
  14. 14
    }
  15. 15
  16. 16
    fmt.Printf("kite: %v\n", kite)
  17. 17
    }

运行结果

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

yg9538 2022年7月22日 22:48 546 收藏文档