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

Posted 一个热爱编程的通信人

tags:

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

go语言没有面向对象的概念了,但是可以使用结构体来实现,面向对象编程的一些特性,例如:继承、组合等特性。

go语言结构体的定义

上一节我们介绍了类型定义,结构体的定义和类型定义类似,只不过多了一个struct关键字,语法结构如下:

type struct_variable_type struct 
    member definition;
    member definition;
    ...
    member definition;

type:结构体定义关键字

struct_variable_type:结构体类型名称

struct:结构体定义关键字

member definition:成员定义

实例

下面我们定义一个人的结构体Person

type Person struct 
    id    int
    name  string
    age   int
    email string

以上我们定义一个Person结构体,有四个成员,来描述一个Person的信息。

同类型的可以合并到一行,例如:

type Person struct 
    id, age     int
    name, email string

声明一个结构体变量

声明一个结构体变量和声明一个普通变量相同,例如:

package main

import "fmt"

type Person struct 
    id, age     int
    name, email string


func main() 
    var tom Person
    fmt.Printf("tom: %v\\n", tom)
    kite := Person
    fmt.Printf("kite: %v\\n", kite)

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
tom: 0 0  
kite: 0 0  

结构体成员,在没有赋值之前都是零值。

访问结构体成员

可以使用点运算符(.),来访问结构体成员,例如:

package main

import "fmt"

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

    var tom Person
    tom.id = 1
    tom.name = "tom"
    tom.age = 20
    tom.email = "tom@gmail.com"
    fmt.Printf("tom: %v\\n", tom)

运行结果如下:

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
tom: 1 20 tom tom@gmail.com

匿名结构体

如果结构体是临时使用,可以不用起名字,直接使用,例如:

package main

import "fmt"

func main() 
    var dog struct 
        id   int
        name string
    
    dog.id = 1
    dog.name = "花花"
    fmt.Printf("dog: %v\\n", dog)


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

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

Golang入门到项目实战 golang方法

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

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

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

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