package main
import "fmt"
/**
*结构体类型
*/
//声明一个结构体类型
type Person struct{
name string //默认为空
age int //default is 0
sex rune //default is 0
address string //default is null
}
//嵌套其他结构体
type Student struct {
P Person
ClassId int
}
//嵌套匿名结构构体
type Student2 struct{
*Person
ClassId int
}
//基于int64声明一个新类型
type Duration int64
func main(){
//使用结构体声明变量,并初始化为其零值
var p Person
fmt.Println(p)
//赋值1,字面量来声明一个结构体类型的变量
p = Person{name:"Jack",age:22,sex:rune('男'),address:"广东深圳"}
//格式化打印输出
fmt.Printf("p=%+v\n",p)
//顺序赋值2,不使用字段名
p = Person{"Tom",22,rune('男'),"广东佛山"}
fmt.Printf("p=%+v\n",p)
//创建指针结构体1
p2 := &Person{"Lucy",21,rune('女'),"杭州西湖"}
fmt.Printf("lucy=%+v\n",p2)
lisa := &Person{}
lisa.name = "Lisa"
lisa.age = 20
lisa.sex = rune('女')
lisa.address = "北京"
fmt.Printf("lisa=%+v\n",lisa)
//使用结构体字面量来创建字段的值
stu := Student{
P:Person{
name:"老孟",
age:22,
sex:rune('男'),
address:"广东深圳",
},
ClassId:10001,
}
//格式化输出
fmt.Printf("stu=%+v\n",stu)
mfz := &Student2{&Person{"mfz",22,rune('男'),"广东深圳"},10001}
fmt.Printf("mfz=%+v\n",mfz)
}
golang结构体
最新推荐文章于 2023-07-07 16:50:47 发布