GO基础-结构体
大约 1 分钟
结构体
在GO语言中,将一个或多个变量组合到一起,形成新的类型.这个类型就是结构体,Go语言中的结构体和C++结构体有点类似,而Java或C#中类本质就是结构体
定义结构体
定义
type Employee struct {
Id string
Name string
Age int
}
实例化
type person struct{
name string
age int
sex string
}
func main() {
//实例化结构体
var p person
p.name = "张三"
p.age = 22
p.sex = "男"
fmt.Printf("p=%v",p) // p={张三 22 男}
}
匿名结构体
func main() {
p1 := struct {
name string
age int
}{} // 允许不赋值
p := struct {
name string
age int
}{"lxx", 18}
fmt.Println(p.name) // lxx
fmt.Println(p1) // {lxx 18}
}
指针结构体
type person struct{
name string
age int
sex string
}
func main() {
var p = new(person)
fmt.Printf("%T\n",p) //*main.person p是person类型的结构体指针
fmt.Printf("p=%#v\n",p) //p=&main.person{name:"", age:0, sex:""}
}
初始化结构体
type person struct {
name string
age int
sex string
}
func main() {
var p person
fmt.Printf("p=%#v\n", p) //p=main.person{name:"", city:"", age:0}
}
注意
- 结构体内的字段占用的是一块连续的地址
- 空的结构体不占用地址:
var a struct{}