Go结构体嵌套
2020-06-05 07:21
176 查看
Go 结构体嵌套
package main import "fmt" //结构体嵌套 /* 结构体嵌套: 一个结构体中的字段,是另一个结构体类型 has a */ func main() { b1 := Book{} b1.bookName = "西游记" b1.price = 45.8 s1 := Student{} s1.name = "小明" s1.age = 21 s1.book = b1 fmt.Println(b1) fmt.Println(s1) fmt.Printf("学生姓名: %s, 学生年龄: %d, 看的书:《%s》, 书的价格: %.2f\n",s1.name,s1.age,s1.book.bookName,s1.book.price) //或者: //s2 := Student{name: "狗子",age: 21,book: Book{bookName: "红楼梦",price: 45.85}} s2 := Student{ name: "狗子", age: 21, book: Book{ bookName: "红楼梦", price: 45.85, }, } fmt.Printf("学生姓名: %s, 学生年龄: %d, 看的书:《%s》, 书的价格: %.2f\n",s2.name,s2.age,s2.book.bookName,s2.book.price) b4 := Book{ bookName: "呼啸山庄", price: 76.8, } s3 := Student2{ name:"李四", age: 18, book: &b4, } fmt.Println(s3.name,s3.age) fmt.Println("\t",s3.book.bookName,s3.book.price) } //1.定义一个书的结构体 type Book struct { bookName string price float64 } //2.定义学生的结构体 type Student struct { name string age int book Book } //结构体指针(建议使用),不用再拷贝一份,节省内存 type Student2 struct { name string age int book *Book //book的地址 }
结果:
{西游记 45.8} {小明 21 {西游记 45.8}} 学生姓名: 小明, 学生年龄: 21, 看的书:《西游记》, 书的价格: 45.80 学生姓名: 狗子, 学生年龄: 21, 看的书:《红楼梦》, 书的价格: 45.85 李四 18 呼啸山庄 76.8
相关文章推荐
- go里基本数据、结构体、map、数组中值传递与地址传递分析
- 结构体的嵌套与报地址取值
- 第09天C语言(17):结构体嵌套
- 对照 Ruby 学 Go (Part 6): 结构体,方法与接口
- 头文件中多层结构体嵌套的结构体定义问题
- go语言初始化内部结构体3中方式
- go struct结构体
- 李艺:Go语言之内的结构体模拟继承
- 结构体的嵌套问题
- go 结构体2 文法
- GO语言结构体
- go 结构体
- Go语言中的匿名结构体用法实例
- 2020 重学 Go 系列:08. 面向对象编程:结构体与继承
- 嵌套的结构体,枚举,及其他
- Go 结构体
- 第22节 C语言结构体之结构体嵌套、结构体指针与结构体数组的代码实现
- DSP28335GPIO定义,联合体和结构体嵌套使用
- 结构体的嵌套
- GO语言为结构体排序