[GO]匿名字段的同名字段操作
package main
import (
"fmt"
)
type Person struct {
name string
sex byte
age int
}
type Student struct {
Person //只有名字,没有字段,这里student相当于继承了person的所有字段,就有点像是继承了
id int
addr string
name string //这里跟person里的字段同名了,那么被使用的时候,操作是studnet还是persion里的name ?
//这里也是遵守作用域的就近规则
}
func main() {
var s Student
s.name = "mike"
fmt.Printf("s = %+v\n", s)//通过打印就可以知道它操作的是student里的name,同样适用作用域的就近规则,如果没有找到,则找继承
//那么如果就是想操作person里的name呢?
s.Person.name = "baylor"
fmt.Printf("s = %+v\n", s)
}
扫行的结果为
s = {Person:{name: sex: age:} id: addr: name:mike}
s = {Person:{name:baylor sex: age:} id: addr: name:mike}
[GO]匿名字段的同名字段操作的更多相关文章
- go语言之进阶篇同名字段
1.同名字段 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...
- hessian接口参数,子类与父类不能有同名字段解决方法
hessian默认是使用 com.caucho.hessian.io.JavaSerializer 序列化,同名字段子类字段值被赋值两次,最终用父类null值赋给了子类同名字段,解决方法就是 指定序列 ...
- 关于left join连接查询 两张表里有同名字段的问题
左连接查询在开发中很常用,但有个问题常常会遇到,两个表中有同名字段时,比如左右表都有一个id字段,会造成查询结果中左表的id值被右表的id值覆盖掉(大部分php框架都是这个效果),而且还不会报错,容易 ...
- 帝国cms调用栏目自定义字段(栏目简介)如何操作
开源的cms就像一个操作系统,可以满足大部分人的需求,如果你想增加一些特殊的功能,那就二次开发呗,就像APP一样.帝国cms默认的栏目是没有调用栏目自定义字段的,我们可以增加一些概述类的文字,让读者对 ...
- Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法
Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法 一丶ORM常用字段 ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
- PostgreSQL 的字段类型和表操作笔记
字段类型 数值类型 Name Storage Size Description Range smallint 2 bytes small-range integer -32768 to +32767 ...
- MySQL添加字段和修改字段
MySQL添加字段的方法并不复杂,下面将为您详细介绍MYSQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助. 1添加表字段 alter table table1 a ...
- mysql 添加字段、删除字段、调整字段顺序
用过MySQL的朋友,可能都在使用phpMyAdmin,我从2003年开始使用,感觉那东西适合远程mysql管理,并 不适合单机.单数据库的管理操作,特别是开发使用. 给家推荐一个软件管理mysql数 ...
随机推荐
- virtual Box centos7 公司网络环境下不能联网的解决方案
首先感谢@采蘑菇的东峰的博客 的分享 原文:http://blog.sina.com.cn/s/blog_8d92d7580102vhky.html ------------------------- ...
- 如何通过.Net Compact Framework来获得应用程序的当前路径
在Win CE上是没有驱动器的概念的,所以要想使用System.IO.Directory.GetCurrentDirectory()来获得当前路径的话,在CF中会遇到未知错误. 应该使用Path. ...
- 第四章 Kubernetes 架构
4.1 Master节点:Master是大脑,运行如下Daemon服务: API Server(kube-apiserver) API server提供了HTTP/HTTPS RESTful ...
- C++ 栈 (数组实现)
上一篇用链表实现了stack,这篇我们采用数组来存储数据,数组更容易理解,直接贴代码 第一.代码实现 #pragma once #include <iostream> using name ...
- 电话号码以185****3547显示demo
String phone="18678473547"; //String phones = phone.substring(0,phone.length()-(phone.subs ...
- 遇到的有关js继承和原型链的一个问题
function A(var1){ this.var1 = var1; } A.prototype = { var1:1 } var b=new A(); b.var1 = 2; var c = ne ...
- Tkinter画布-Canvas
Python - Tkinter画布-Canvas: Canvas是一个长方形的面积,图画或其他复杂的布局.可以放置在画布上的图形,文字,部件,或是帧 Canvas是一个长方形的面积,图画或其他复杂的 ...
- Monkey测试工具介绍
---------------------------------------------------------------------------------------------------- ...
- InfluxDB命令使用
身份验证与授权(权限管理) Authentication and Authorization 注意:身份授权与验证不能用于阻止恶意用户.如果有额外的做合理性和安全性的需求,InfluxDB可以运行在第 ...
- LUA和C#关于字符串中\0的处理
LUA中: local s = "hello\0\0dddddddd" print(s) --hello C#中: string s = "hello\0\0dddddd ...