Go学习每日一问(13)-结构体嵌套
文章目录
每次学习并整理一个Golang的知识点,每天进步一点点。今天学习一个go结构体嵌套的知识点🤔。
日省吾身
1.下面这段代码的输出结果?
|
|
- A. -7 +7
- B. +7 +7
- C. 7 7
- D. +7 -7
2.判断下面代码是否能正常执行?如果可以,写出输出结果?
|
|
思考后看下方答案…
答疑解惑
参考答案:
1. A %+d 表示带符号的整型
%d
表示输出十进制数字,+
表示输出数值的符号; fmt.Printf("%+d", 255)
结果输出为:+255
2. 输出结果见下: 知识点:结构体嵌套
|
|
-
结构体
Teacher
中又嵌套了另外一个结构体:People
;在嵌套结构体中,People
称为内部类型,Teacher
称为外部类型;通过嵌套,内部类型的属性、方法,可以为外部类型所有,就好像是外部类型自己的一样。此外,外部类型还可以定义自己的属性和方法,当外部类型方法名与内部类型相同时,内部类型的方法就会被“屏蔽”,优先使用外部类型自己的方法。这个例子中的ShowB()
就是同名方法,所以调用了Teacher
的ShowB()
方法,输出:teacher showB"
; -
t.ShowA()
,由于Teacher
没有自己的ShowA()
方法,所以调用内部类型 People 的同名方法,而People的ShowA()
方法中又调用了自己的ShowB()
方法,所以t.ShowA()
的输出结果为:showA showB
;
以上,你做对了吗?😊
其他相关答案或补充知识点,欢迎在评论区留言补充!
扩展阅读
匿名字段
结构体中的字段可以不给名称,这时称为匿名字段。匿名字段的名称强制和类型相同。例如:
|
|
上面teacher
中有两个匿名字段person
和int
,匿名字段的名称和类型相同,等价于:
|
|
跟题2类似,teacher
中嵌套了其他结构体(person
)。其中teacher
就称为外部struct,person
就称为内部struct;
下期提问
- 下面代码的输出结果?
|
|
答案及解析将在下期文章中给出,欢迎大家在评论区留言,独乐乐不如众乐乐,交流学习,互相进步。
欢迎转发和评论。更多优质原创文章,欢迎关注微信公众号“IYue爱月”或扫描下方二维码: