1.1 什么是结构体
Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
1.2 结构体的定义和初始化
type struct_variable_type struct { member definition; member definition; ... member definition;}一旦定义了结构体类型,它就能用于变量的声明
variable_name := structure_variable_type {value1, value2...valuen}初始化结构体
// 1.按照顺序提供初始化值P := person{"Tom", 25}// 2.通过field:value的方式初始化,这样可以任意顺序P := person{age:24, name:"Tom"}// 3.new方式,未设置初始值的,会赋予类型的默认初始值p := new(person)p.age=241.3 结构体的访问
访问结构体成员(访问结构的各个字段)
通过点.操作符用于访问结构的各个字段。
package mainimport "fmt"type Books struct { title string author string subject string book_id int}func main() { var Book1 Books var Book2 Books Book1.title = "Go 语言" Book1.author = "www.runoob.com" Book1.subject = "Go 语言教程" Book1.book_id = 6495407 Book2.title = "Python 教程" Book2.author = "www.runoob.com" Book2.subject = "Python 语言教程" Book2.book_id = 6495700 fmt.Printf( "Book 1 title : %sn", Book1.title) fmt.Printf( "Book 1 author : %sn", Book1.author) fmt.Printf( "Book 1 subject : %sn", Book1.subject) fmt.Printf( "Book 1 book_id : %dn", Book1.book_id) fmt.Printf( "Book 2 title : %sn", Book2.title) fmt.Printf( "Book 2 author : %sn", Book2.author) fmt.Printf( "Book 2 subject : %sn", Book2.subject) fmt.Printf( "Book 2 book_id : %dn", Book2.book_id)}运行结果:
Book 1 title : Go 语言Book 1 author : www.runoob.comBook 1 subject : Go 语言教程Book 1 book_id : 6495407Book 2 title : Python 教程Book 2 author : www.runoob.comBook 2 subject : Python 语言教程Book 2 book_id : 6495700



