c++结构体嵌套结构体_Go学习每日一问(13)-结构体嵌套

每次学习并整理一个Golang的知识点,每天进步一点点。今天学习一个go结构体嵌套的知识点。

日省吾身

1.下面这段代码的输出结果?

func main() {      a := -7    b := +7    fmt.Printf("%+d %+d", a, b)}
  • A. -7 +7
  • B. +7 +7
  • C. 7 7
  • D. +7 -7

2.判断下面代码是否能正常执行?如果可以,写出输出结果?

type People struct{}func (p *People) ShowA() {    fmt.Println("showA")    p.ShowB()}func (p *People) ShowB() {    fmt.Println("showB")}type Teacher struct {    People}func (t *Teacher) ShowB() {    fmt.Println("teacher showB")}func main() {    t := Teacher{}    t.ShowB()    t.ShowA()}
89f76839dac1be8e818c4d37d6746501.png

要有自己的思考哦

思考后看下方答案…


答疑解惑

参考答案:

1. A %+d 表示带符号的整型

%d表示输出十进制数字,+表示输出数值的符号; fmt.Printf("%+d", 255)结果输出为:+255

2. 输出结果见下: 知识点:结构体嵌套

teacher showBshowAshowB
  • 结构体Teacher中又嵌套了另外一个结构体:People;在嵌套结构体中,People 称为内部类型,Teacher 称为外部类型;通过嵌套,内部类型的属性、方法,可以为外部类型所有,就好像是外部类型自己的一样。此外,外部类型还可以定义自己的属性和方法,当外部类型方法名与内部类型相同时,内部类型的方法就会被“屏蔽”,优先使用外部类型自己的方法。这个例子中的 ShowB() 就是同名方法,所以调用了TeacherShowB()方法,输出"teacher showB”;
  • t.ShowA(),由于Teacher 没有自己的 ShowA()方法,所以调用内部类型 People 的同名方法,而People的ShowA()方法中又调用了自己的ShowB()方法,所以t.ShowA()的输出结果为:showA showB;

以上,你做对了吗?

其他相关答案或补充知识点,欢迎在评论区留言补充!

扩展阅读

匿名字段

结构体中的字段可以不给名称,这时称为匿名字段。匿名字段的名称强制和类型相同。例如:

type person struct {name stringage  int}type teacher struct {personintschool string}

上面teacher中有两个匿名字段personint,匿名字段的名称和类型相同,等价于:

type teacher struct {person personint    intschool string}

跟题2类似,teacher中嵌套了其他结构体(person)。其中teacher就称为外部struct,person就称为内部struct;

下期提问

  1. 下面代码的输出结果?
func hello(n int) {fmt.Println(n)}func main() {n := 5defer hello(n)n = n + 10}

答案及解析将在下期文章中给出,欢迎大家在评论区留言,独乐乐不如众乐乐,交流学习,互相进步


欢迎转发和评论。更多优质原创文章,欢迎关注微信公众号“IYue爱月”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ddd 访问权限_基于DDD的微服务设计和开发实战

作者:欧创新、邓頔、文艺你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案。本文是基于 DDD 的微服务设计和开发实战篇&#xff…

里能嵌jquery吗_白芸豆里的淀粉阻断成分,能帮助减肥是真的吗?

原创 | 芙蓉营养师减肥偏方年年有,最近群里好多妹纸在问白芸豆是不是真的这么神奇?据说能阻断淀粉帮助减肥,很多人不仅囤了好多白芸豆,还有人买的是白芸豆提取物做成的液体饮料,价格真心不便宜,一小盒就一百…

华为鸿蒙系统是指芯片吗_华为首部鸿蒙手机P50——不再使用麒麟芯片,拍照系统再升级...

12月16日,华为如期上线了鸿蒙OS2.0Beta 版本手机系统。最初版本支持P40、Mate 30系列和平板 MatePad Pro。不过,想升级尝鲜的朋友可能要失望了。华为此次发布的鸿蒙系统属于开发者版本,主要目的是开放系统给开发者们做软件适配。根据上手体验…

盛金公式解一元三次方程_【国际数学竞赛】高次方程求根

对于一元二次方程 ,我们由求根公式可得:。对于一元三次方程 ,我们有卡尔丹公式法和盛金公式法。不过公式比较冗长、不易计算,但我们还是有方法计算的,那么如果是一元四次、一元五次甚至更高呢?遇到高次方程 我们通常的做法是先用试…

3c vrrp的接口监视_主备冗余协议,VRRP基础,状态机选举及VRRP配置,理论+实战...

一、VRRP基础概念1、虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数…

去除标题_你真的会写标题吗?企优托教您打造黄金标题离不开这三步

一、标题作用解读标题对于产品的意义买家购买逻辑想到一款产品,并知道他的名称去网上搜索,看到图片等信息类比价格评价等内容,下单收到货和自己根据标题照片评判商品核心要点:买家是根据产品名字作为购买切入点;照片和…

18f458中断入口C语言_操作系统开发之——中断

这里先提交一个代码的错误,之前运行过快,没看出刷屏的问题:// kernel/console.c...void init_console(void) {... // Before: // console_fixed_height ScreenHeight - 16; // console_fixed_height (ScreenHeight / 16 - 1) *…

可选版本 安装软件_【Linux软件】在Deepin系统下安装LibreOffice 6.1.4版本的方法

在Deepin系统下安装LibreOffice 6.4.1版本的方法使用的是Deepin系统,从深度应用商店看到有LibreOffice,安装了一下,发现ui是真的丑,就像是十年前的xp那样,记得前段时间在Windows用的时候UI基本重写了,发生了…

python query方法_Pandas dataframe.query方法语法

问题:我想更好地理解PandasDataFrame.query方法以及下面的表达式表示什么:match dfDays.query(index > x.name & price > x.target)x.name代表什么?我理解这段代码(一个包含pandas.tslib.Timestamp数据的新列)的结果输出是什么&am…

python刷新_如何在python中刷新输入流?

这将有助于了解您正在使用的操作系统,因为这是一个非常特定于操作系统的问题。例如,Kylar的答案在Windows上不起作用,因为sys.stdin没有fileno属性。我很好奇,用咒语拼凑出一个解决方案,但这在Windows上也行不通&#…

9550电机_电机转矩T=9550*P/N推导。

很奇怪,这个公式怎么来的,原来好多是基础物理的,也许我们初中高中物理书上多有,基础真的是很基础的基础。PF*V (1) ,即功率力*速度TF*R (2) ,即力矩力*作用长度 ,在电机里面就是转矩力*作用半径;看公式(2)…

oracletns中不存在名称为_关于数据库:向SQL Developer添加新连接时未显示Oracle TNS名称...

我正在尝试使用SQL Developer连接到oracle数据库。我已经安装了.Net oracle驱动程序并将tnsnames.ora文件放在C:\Oracle\product\11.1.0\client_1etwork\Admin我在tnsnames.ora中使用以下格式:dev (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.XXX.XXX)(P…

的表格点击全选_“逼死”强迫症的杂乱表格,原来3秒就能整理好!(必学)...

点击上方蓝字关注星标★不迷路本文作者:长小安视频策划:视频小分队本文编辑:竺兰哈喽大家好!你们可爱的小安又来啦~相信在工作中经常接触表格的人,总会有这样的困扰:表格数据太多,行高列宽不合适…

linux 重置网卡配置_Linux不进入网卡配置文件更改静态ip

1、找到网卡配置文件名ls /etc/sysconfig/network-scripts/2、备份并查看原始配置文件(若原先有配置IP的,则按照第五点方式修改)3、修改随机自启和IP地址echo -e "IPADDR192.168.43.12 \nNETMASK255.255.255.0 \nGATEWAY192.168.43.1" >> /etc/sysc…

php mysql电商网站设计与制作_赢在电子商务——php+mysql电商网站设计与制作

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

mysql从盘延迟_Mysql-主从延迟解决方法

Mysql 的主从延迟 指的是 主库受写入 后 到这个写入能体现在 从库上 的这段时间Mysql 的主从延迟 有两个原因:1. 写操作 已经在 主库中执行了,但是 binlog 还没有发送出去, 后者还在路上,没有被 从库收到2. 虽然 binlog 已经被 从…

php程序访问mysql数据实现查询_PHP+MySql实现后台数据的读取

我们使用的是PHP的php_mysqli扩展首先了解一些基础的用法1.连接数据库使用mysqli_connect()参数:①主机地址 ②MYSQL用户名 ③MYSQL密码 ④选择连接的数据库 ⑤端口号返回:如果连接成功返回资源类型的标识符号,如果失败返回false如果我们与My…

idea测试连接mysql报错08001_IDEA连接MySQL(版本8)数据库失败的解决方法(报错08001)...

在IDEA自带的数据库连接工具中,可以连接MySQL数据库,但是有的时候连接出现08001错误,连接不上数据库。1、一般配置如下所示Database处填写数据库名字;User处填写mysql设置好的用户名;密码同理填写设置好的;…

mysql存儲過程_Mysql存儲過程 | 學步園

一.創建存儲過程在創建存儲過程之前,首先要了解delimiter 分界符,默認sql 語句分界符是 ; 分號,但為了寫較長的存儲過程,需要將默認分割符修改掉,建議修改為 //,如此之後,sql 語句必須使用// 才算是一段完整…

mysql乐观锁重试_乐观锁加重试,并发更新数据库一条记录导致:Lock wait timeout exceeded...

背景:mysql数据库,用户余额表有一个version(版本号)字段,作为乐观锁。更新方法有事务控制:Transactional(rollbackFor Exception.class)更新时,比对版本号,如果版本号不一致,则更新失败。有重试…