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结构体的主要内容,如果未能解决你的问题,请参考以下文章