结构体

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)
}