2024-08-03 05:59PM
参考:https://www.topgoer.com/go/结构体
1.结构体:
go语言中的基础数据类型可以表示一些事物的基本属性,但是我们想表达一个事物的全部或部分属性时,这时候再用单一的数据类型明显就无法满足需求了,go语言提供了一个种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体(struct),我们可以通过struct来定义自己的类型。
go语言中通过struct来实现面向对象。
1.2 结构体定义:
使用type和struct关键字来定义结构体,具体代码格式如下:
type 类型名 struct {
字段名 字段类型
字段名 字段类型
}
其中:
1)类型名:表示自定义结构体的名称,在同一个包内不能重复。
2)字段名:表示结构体字段名。结构体中的字段名必须唯一。
3)字段类型:表示结构体字段的具体类型。
eg:定义一个Person结构体,代码如下:
type person struct {
name string
city string
age int8
}
同类型的字段也可以写在一行:
type person1 struct {
name, city string
age int8
}
这样我们就拥有了一个person的自定义类型,它有name、city、age三个字段,分别表示姓名、城市和年龄。这样我们使用了这个person结构体就可以很方便的在程序中表示和存储人信息了。
语言内置的基础数据类型是用来描述一个值的,而结构体是用来描述一组值的,比如一个人有名字、年龄和居住城市等,本质上是一种聚合型的数据类型
1.2.2 结构体实例化
只有当结构体实例化是,才会真正地分配内存。也就是必须实例化后才能使用结构体的字段。
结构体本身也是一种类型,我们可行像声明内置变量一样使用 var关键字声明结构体类型。
var 结构体实例 结构体类型
1.2.3 基本实例化
package main
import "fmt"
type person struct {
name string
city string
age int8
}
func main() {
var p1 person
p1.name = "李莉"
p1.city = "北京"
p1.age = 20
fmt.Printf("p1=%v\n", p1) //p1={李莉 北京 20}
fmt.Printf("p1=%#v\n", p1) //p1=main.person{name:"李莉", city:"北京", age:20}
}
可以通过.来访问结构体的字段,例如p1.name和p1.age等
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论