gloang之嵌入类型
来源:互联网 发布:ipad淘宝可以看直播吗 编辑:程序博客网 时间:2024/06/10 00:31
嵌入类型是将已有的类型直接声明在新的结构类型中,被嵌入的类型被称为外部类型的内部类型,通过嵌入类型,与内部类型相关的标识符会提升到外部类型上
package mainimport ( "bytes" "encoding/binary" "fmt")type User struct { Name int32 Age int32}type Admin struct { User Sex int32}func (u *User) Encode() []byte { buf := new(bytes.Buffer) err := binary.Write(buf, binary.LittleEndian, u) if err != nil { fmt.Println("binary.Write failed:", err) } return buf.Bytes()}func (u *User) Decode(b []byte) { buf := bytes.NewBuffer(b) err := binary.Read(buf, binary.LittleEndian, u) if err != nil { fmt.Println("binary.Read failed:", err) }}func main() { a := Admin{ User: User{ Name: 2001, Age: 23, }, Sex: 1, } buf := a.User.Encode() a.User.Decode(buf) fmt.Println(buf) fmt.Println(a) buff := a.Encode() a.Decode(buff) fmt.Println(buff) fmt.Println(a)}
如上例所示,内部类型User是外部类型Admin的内部类型,此时,内部类型User的所有标识符都会提升到外部类型上(包括变量和函数)
如上所示调用,由于外部类型并未实现该方法,因此内部类型的标识符(函数)被提升到外部类型,通过外部类型调用,和通过内部类型调用的结果相同,如下所示
显示结果如下
github路径
阅读全文
0 0
- gloang之嵌入类型
- gloang 之线性搜索算法
- 嵌入窗体之桌面嵌入
- 嵌入窗体之桌面嵌入
- 无法嵌入互操作类型
- 无法嵌入互操作类型
- 无法嵌入互操作类型
- 无法嵌入互操作类型
- 无法嵌入互操作类型
- 无法嵌入互操作类型
- Feathers之嵌入图形
- 无法嵌入互操作类型“MSScriptControl.ScriptControlClass”
- ArcEngine 无法嵌入互操作类型
- C# 无法嵌入互操作类型
- 【Winform】无法嵌入互操作类型
- VS2010中,无法嵌入互操作类型
- 嵌入互操作类型是什么鬼
- android开发之嵌入广告
- #javaGUI#基于swing包的java用户界面设置入门,组件篇
- servlet是干什么的?
- HDU1247 Hat's Words(Trie树,map)
- 剑指offer 关于C#
- [PAT] 1005 Spell It Right (20)
- gloang之嵌入类型
- 严蔚敏版数据结构课本代码——算法2.2
- Python源码剖析(04 Python中的List对象)
- docker 总结
- Python 的数据结构——序列讲解(附实例代码)
- 前端学习(一)
- .md markdown
- HDU 1495-非常可乐
- Windows10下安装TensorFlow(Anaconda5.0.0,Python3.6.2)