go语言中没有类的概念,所以go语言设计者引入了结构体这个概念。
结构体是由一系列具有相同类型或不同类型的数据结构和数据集合。
- 结构体定义使用type和struct语句定义一个新的数据类型,结构体中有一个或多个成员,type语句设定了结构体的名称,结构体的格式:
type 结构体类型名 struct {
成员1 类型1
成员2 类型2
....
}
- 结构体初始化
// 方法一
变量名 := 结构体类型名{value1, value2, value3, ...}
// 方法二,采用key: value类型
变量名 := 结构体类型名{key1:value1, key2:value2, key3:value3, ...}
// 结构体实例化
var 结构体实例 结构体类型
- 举例
package main
import "fmt"
type Preson struct {
name string
age int32
grender string
}
func main(){
//创建一个新的结构体,结构体实例化
p1 := Person{"libai", 14, "男"}
fmt.Println(p.name) // 访问结构体成员
p2 := Person(name:"libai", age:15, grender:"男")
}
// 访问结构体成员:结构体变量名.成员名
- 匿名结构体
在函数体内,声明匿名结构体
package main
import "fmt"
func main(){
var vser struct {Name string; Age int}
user.Name = "libai"
user.Age = 19
}
结构体指针
- 定义个指向结构体的指针类
// 声明一个指针类型
var struct_pointer *Person
func printPerson( person *Person){
// 在调用时取Person结构体指针
}
func main(){
printPeron(&Person)
}