1、同名字段
示例:
package main import "fmt" type Person struct {
name string //名字
sex byte //性别, 字符类型
age int //年龄
} type Student struct {
Person //只有类型,没有名字,匿名字段,继承了Person的成员
id int
addr string
name string //和Person同名了
} func main() {
//声明(定义一个变量)
var s Student //默认规则 (就近原则),如果能在本作用域找到此成员,就操作此成员
// 如果没有找到,找到继承的字段
s.name = "mike" //操作的是Student的name,还是Person的name?, 结论为Student的
s.sex = 'm'
s.age = 18
s.addr = "bj" //显式调用
s.Person.name = "yoyo" //Person的name fmt.Printf("s = %+v\n", s) }
执行结果:
s = {Person:{name:yoyo sex:109 age:18} id:0 addr:bj name:mike}
go语言之进阶篇同名字段的更多相关文章
-
go语言之进阶篇接口转换
1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ...
-
go语言之进阶篇结构体指针类型匿名字段
1.结构体指针类型匿名字段 示例: package main import "fmt" type Person struct { name string //名字 sex byte ...
-
go语言之进阶篇非结构体匿名字段
1.非结构体匿名字段 示例 : package main import "fmt" type mystr string //自定义类型,给一个类型改名 type Person st ...
-
go语言之进阶篇方法的重写
1.方法的重写 示例: //Person类型,实现了一个方法 func (tmp *Person) PrintInfo() { fmt.Printf("name=%s, sex=%c, ag ...
-
go语言之进阶篇面向对象编程
1.面向对象编程 对于面向对象编程的支持Go 语言设计得非常简洁而优雅.因为, Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继 ...
-
go语言之进阶篇通过select实现斐波那契数列
一.select作用 Go里面提供了一个关键字select,通过select可以监听channel上的数据流动. select的用法与switch语言非常类似,由select开始一个新的选择块,每个选 ...
-
go语言之进阶篇创建goroutine协程
1.goroutine是什么 goroutine是Go并行设计的核心.goroutine说到底其实就是协程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现 ...
-
go语言之进阶篇并行和并发的区别与go语言并发优势
1.并行和并发的概念 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在 ...
-
go语言之进阶篇json解析到结构体
1.json解析到结构体 示例: package main import ( "encoding/json" "fmt" ) type IT struct { ...
随机推荐
-
[LeetCode] Number of Islands II 岛屿的数量之二
A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand oper ...
-
创建支持eclipse的多模块maven项目
通过maven可以创建多个关联模块的项目(Multiple Module Projects).由一个总的模块,下面包含多个子模块(子模块还可以包含子模块). 这种maven功能能支持大型的项目构建,往 ...
-
Linux内核的总结认识
转载博文: http://www.linuxdiyf.com/linux/11234.html 1.内核是怎样实现其管理的职能? 以前在学校时一直不能理解内核是怎么做管理?比如内核如何知道在什么时候对 ...
-
Linux 吃掉我的内存
在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能.而当我 ...
-
sa账户和密码丢失如何找回
来自:http://www.cnblogs.com/xred/archive/2012/03/09/2386185.html 在网上看了很多如何修改SQLServer2005的密码的方法.大多数都是转 ...
-
FPGA驱动VGA显示静态图片
一 .前言 本文设计思想采用明德扬至简设计法.VGA是最常见的视频显示接口,时序也较为简单.本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采 ...
-
498. Diagonal Traverse对角线z型traverse
[抄题]: Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in dia ...
-
H5页面的滚动条在windows浏览器下始终看到(灰色的不可用的)
一般这种情况是在某些相关的div上设置了overflow:scroll属性,在mac系统的浏览器下均没有滚动条显示而在windows下的各个浏览器上均可以看到灰色的不可用的滚动条,这种情况我们需要在b ...
-
打通Fedora19的ssh服务
Fedora19的SSH服务是默认关闭的,安装后我们需要打通它. 首先,编辑/etc/ssh/sshd_config,把下面黑体字部分打开注释,如下: # $OpenBSD: sshd_c ...
-
Android-封装JSON数据(JSON对象/JSON数组)
Android-封装JSON数据(JSON对象/JSON数组),一般情况下不会在Android端封装JSON的数据,因为封装JSON的数据是在服务器端进行封装了,Android更多的工作是解析(JSO ...