struct
创建 struct
type Person struct {
name string
age int
}
通过 type 关键字定义一个 struct ,定义 struct 结构包括哪些属性,并且指定属性的类型
struct 的成员的赋值
p.name= "zidea"
struct 是可以进行嵌套的
type person struct {
name string
age int
contact struct {
phone, city string
}
}
字面量初始化
也可以通过字面值进行初始化,这是常用的做法,写法类似于JSON的写法
type Person struct {
name string
age int
}
p := Person{
name:"zidea",
age: 30,
}
结构体作为参数传递
定义函数接受参数为 Person 注意在 go 默认是传值的
func print(p Person){
fmt.Println(p.name)
fmt.Println(p.age)
}
print(p)
结构体指针
如果要在函数 print 中修改作为参数传入的 person 对象,就需要传地址而非传值
p := &Person{
name:"zidea",
age: 30,
}
func print(p *Person){
fmt.Println(p.name)
fmt.Println(p.age)
}
匿名结构体
a := &struct{
name string
age int
}{
name:"zidea",
age: 30,
}
结构体的继承
go 语言中并没有面向对象语言的继承关系
type human struct {
sex int
}
type teacher struct {
human
name string
age int
}
type student struct {
human
name string
age int
}
网友评论