Golang入门到项目实战 | golang结构体的初始化

Posted 一个热爱编程的通信人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang入门到项目实战 | golang结构体的初始化相关的知识,希望对你有一定的参考价值。

未初始化的结构体,成员都是零值 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 

以上是关于Golang入门到项目实战 | golang结构体的初始化的主要内容,如果未能解决你的问题,请参考以下文章

Golang入门到项目实战 | golang嵌套结构体

Golang入门到项目实战 golang方法

Golang入门到项目实战 | golang结构体的初始化

Golang入门到项目实战 | golang结构体指针

Golang入门到项目实战 | golang结构体指针

Golang入门到项目实战 | golang结构体的初始化