创建复合数据结构。
- 字段名唯一,可使用_补位。
- 不能用多级指针操作字段。
- 只有全部字段支持时才能判断是否相等。
结构体是创建复合数据结构的一种方法,因为Go语言没有Class只有结构体。Go语言OOP实际上是种简化版,它没有真正意义上Class,它是围绕着结构体来实现的。那么go的这种设计优点在哪,缺点在哪?
type User struct {
Name string
Age int
}
func main() {
u := User{"user1", 10}
p :=&u
p.Name = "test" //p->Name
fmt.Println(u)
}
User
类型,p
指针直接操作。因为Go语言没有指针操作符只有点操作符。点操作符语法糖的包装是有限度的,它只支持一级指针不支持二级指针。
结构体初始化方式
type User struct {
name string
age int
}
func NewUser(name string, age int) User {
return User{name: name,
age: age,
}
}
func main() {
u := User{"jack", 23}
u2 := User{name: "jack",
age: 23,
}
fmt.Printf("%v, %v", u, u2)
}
结构体初始化方式有几种呢?
_ = User{"jack",