🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、定义结构体 格式如下: ~~~ type struct_variable_type struct { member definition member definition ... member definition } ~~~ #### 实例 ~~~ package main import "fmt" type Books struct { id int title string desc string } func main() { // 创建一个新的结构体 var b1 Books b1.id = 1 b1.title = "标题1" b1.desc = "描述2" fmt.Println("b1的结构体的值为:", b1) b2 := Books{2, "标题2", "描述2"} fmt.Println("b2的结构体的值为:", b2) // 也可以使用 key => value 格式 b3 := Books{id: 3, title: "标题3", desc: "描述3"} fmt.Println("b3的结构体的值为:", b3) } ~~~ 执行结果: b1的结构体的值为: {1 标题1 描述2} b2的结构体的值为: {2 标题2 描述2} b3的结构体的值为: {3 标题3 描述3} ## 二、访问结构体成员 如果要访问结构体成员,需要使用点号.操作符,格式为: ~~~ 结构体.成员名" ~~~ #### 实例 ~~~ package main import "fmt" type Books struct { id int title string desc string } func main() { // 创建一个新的结构体 b1 := Books{2, "标题2", "描述2"} fmt.Println("id为:", b1.id) fmt.Println("title为:", b1.title) fmt.Println("desc为:", b1.desc) } ~~~ 执行结果: id为: 2 title为: 标题2 desc为: 描述2 ## 二、结构体作为函数参数 ~~~ package main import "fmt" type Books struct { id int title string desc string } func fun01(book Books) { fmt.Println("id为:", book.id) fmt.Println("标题为:", book.title) fmt.Println("描述为:", book.desc) } func main() { // 创建一个新的结构体 b1 := Books{1, "标题1", "描述1"} fmt.Println("b1的值为:", b1) fun01(b1) b2 := Books{2, "标题2", "描述2"} fmt.Println("b2的值为:", b2) fun01(b2) } ~~~ 执行结果: b1的值为: {1 标题1 描述1} id为: 1 标题为: 标题1 描述为: 描述1 b2的值为: {2 标题2 描述2} id为: 2 标题为: 标题2 描述为: 描述2 ## 三、结构体指针 ~~~ package main import "fmt" type Books struct { id int title string desc string } func fun01(book *Books) { fmt.Println("id为:", book.id) fmt.Println("标题为:", book.title) fmt.Println("描述为:", book.desc) } func main() { // 创建一个新的结构体 b1 := Books{1, "标题1", "描述1"} fmt.Println("b1的值为:", b1) fun01(&b1) b2 := Books{2, "标题2", "描述2"} fmt.Println("b2的值为:", b2) fun01(&b2) } ~~~ 执行结果: b1的值为: {1 标题1 描述1} id为: 1 标题为: 标题1 描述为: 描述1 b2的值为: {2 标题2 描述2} id为: 2 标题为: 标题2 描述为: 描述2