【Golang系列】-结构体的初始化
2022-03-17
结构体的初始化
未初始化的结构体,成员都是0值,int 0,float 0.0 ,bool false, string nil nil
示例:
package main
import "fmt"
func main() {
type Person struct {
id, age int
name, email string
}
var tom Person
fmt.Println(tom)
}
使用键值对对结构体进行初始化
package main
import "fmt"
func main() {
type Person struct {
id, age int
name, email string
}
caolihui := Person{
id: 1,
age: 30,
name: "caolihui",
email: "caolihui@email.com",
}
fmt.Println(caolihui)
}
使用值的列表初始化:
package main
import "fmt"
func main() {
type Person struct {
id, age int
name, email string
}
caolihui := Person{
1,
30,
"caolihui",
"caolihui@email.com",
}
fmt.Println(caolihui)
}
注意:
- 必须初始化结构体的所有字段
- 初始值的填充顺序必须与字段在结构体中的声明顺序一致
- 该方式不能和 键值对初始方式混用
部分成员初始化:
用不到成员可以不初始化
package main
import "fmt"
func main() {
type Person struct {
id, age int
name, email string
}
caolihui := Person{
id: 1,
name: "caolihui",
}
fmt.Println(caolihui)
}