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基本重写了,发生了…

的表格点击全选_“逼死”强迫症的杂乱表格,原来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…

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设置好的用户名;密码同理填写设置好的;…

信息管理系统 github_Java+MySQL实现学生信息管理系统

基于Java swingMySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家。源码:https://github.com/ZhuangM/student.git1、 开发环境:jdk7MySQL5win7代码结构:model-d…

smith标准型_线性系统理论(八)多项式矩阵Smith-McMillan标准型计算方法

1 参考[1]Chenglin Li:线性系统理论(七)finite- and infinite-zeros​zhuanlan.zhihu.com多项式矩阵Smith-McMillan标准型确定方法分析2 单模矩阵法Chenglin Li:线性系统理论(七)finite- and infinite-zero…

mysql explain insert_简述Mysql Explain 命令

MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。参考官方文档地址:为什么用explain . 如果你的页面返回结果很…

mysql数据库初识实训总结_MySQL(数据库)的初识

1.什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库2.什么是MySQLMySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。3.关系数…

jdk1.8要安装什么mysql_Window下安装JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程图解

JDK1.8安装下载打开链接: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.下拉选择不同jdk版本,图示为window系统下载提示需登录账号可查看这个帖子Oracle账号.安装双击下载的安装包,按提示走就可以安装完成之后…

php mysql bootstart_PHP MySQL 创建数据库

PHP MySQL 创建数据库数据库存有一个或多个表。你需要 CREATE 权限来创建或删除 MySQL 数据库。使用 MySQLi 和 PDO 创建 MySQL 数据库CREATE DATABASE 语句用于在 MySQL 中创建数据库。在下面的实例中,创建了一个名为 "myDB" 的数据库:实例 (…

中班机器人歌曲_机器人幼儿园大班音乐教案

机器人幼儿园大班音乐教案作为一名无私奉献的老师,有必要进行细致的教案准备工作,教案是教学活动的总的组织纲领和行动方案。那么问题来了,教案应该怎么写?以下是小编为大家收集的机器人幼儿园大班音乐教案,供大家参考…

java中0x07_JAVA里0X00的表示

相信很多针对报文进行组织与拆解,在C、C里有memset的功能很容易完成字符串里填充0x00,在java里同样很容易做到,则是用\000,八进制来表示。测试代码如下:package j8583.example;import java.util.ArrayList;import java.util.Array…