泊爷带你学go -- 经典的继承与接口 简直吊炸天 !
package main import (
"fmt"
) type TeamBase struct {
m_TeamId uint64
m_Rid uint32
m_RoomRule uint32
m_Players []uint64
} type TeamInt interface {
Init()
CreateTeam(accountId uint64, rid uint32) bool
AddTeamPlayer(accountId uint64) bool
DelTeamPlayer(accountId uint64) bool
GetTeamBase() *TeamBase
} type TeamNormal struct {
TeamBase
} func (this *TeamNormal) Init() {
this.TeamBase.m_Players = make([]uint64, 0)
this.TeamBase.m_TeamId = 0
this.TeamBase.m_Rid = 0
this.TeamBase.m_RoomRule = 0
} func (this *TeamNormal) CreateTeam(accountId uint64, rid uint32) bool {
this.TeamBase.m_TeamId = accountId
this.TeamBase.m_Rid = rid
this.TeamBase.m_Players = append(this.TeamBase.m_Players, accountId)
return true
} func (this *TeamNormal) AddTeamPlayer(accountId uint64) bool {
this.TeamBase.m_Players = append(this.TeamBase.m_Players, accountId)
return true
} func (this *TeamNormal) DelTeamPlayer(accountId uint64) bool {
return true
} func (this *TeamNormal) GetTeamBase() *TeamBase {
return &this.TeamBase
} type TeamManager struct {
m_teamList map[uint64]TeamInt
} var teamMgr *TeamManager func TeamManager_GetMe() *TeamManager {
if teamMgr == nil {
teamMgr = &TeamManager{
m_teamList: make(map[uint64]TeamInt),
}
}
return teamMgr
} func (this *TeamManager) CreateTeam(teamId uint64, rid uint32) bool {
this.DelTeam(teamId)
tn := &TeamNormal{}
tn.Init()
tn.CreateTeam(teamId, rid)
this.m_teamList[teamId] = interface{}(tn).(TeamInt)
return true
} func (this *TeamManager) DelTeam(teamId uint64) {
if this.GetTeam(teamId) != nil {
delete(this.m_teamList, teamId)
}
} func (this *TeamManager) GetTeam(teamId uint64) TeamInt {
k, err := this.m_teamList[teamId]
if !err {
return nil
}
return k
}
泊爷带你学go -- 经典的继承与接口 简直吊炸天 !的更多相关文章
- 泊爷带你学go -- 反射的经典玩法
package main import ( "fmt" "reflect" ) type order struct { ordId int customerId ...
- 泊爷带你学go -- redis连接池的操作
package main import ( "common" "fmt" "proto" "strconv" " ...
- 泊爷带你学go -- 加锁的问题
package main import ( "fmt" "sync" ) var l sync.Mutex var a string func f() { a ...
- 我要带徒弟学写JAVA架构,引路架构师之路(Jeecg开源社区)
带徒弟学JAVA架构(Jeecg社区) Java程序员如何打破工作2,3年的瓶颈问题,如何更上一层楼? 太多的巧合,让我接触到了开源,通过JEECG与很多朋友交流后,让我有了帮助别 ...
- 【凯子哥带你学Framework】Activity界面显示全解析(下)
咱们接着上篇继续讲,上篇没看的请戳:[凯子哥带你学Framework]Activity界面显示全解析(上) 如何验证上一个问题 首先,说明一下运行条件: //主题 name="AppThem ...
- 带你学C带你飞!
C语言免费课程推荐:带你学C带你飞! 想学习C语言,首先就要了解什么是C语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码 ...
- 老段带你学鸟哥Linux视频教程 包含基础班+提高班
老段带你学鸟哥Linux视频教程 包含基础班+提高班,附带pdf文档. 目录结构如下: 目录:/-老段带你学鸟哥Linux视频教程 [.9G] ┣━━老段带你学鸟哥-服务器篇 [1009.4M] ┃ ...
- 手摸手带你学移动端WEB开发
HTML常用标签总结 手摸手带你学CSS HTML5与CSS3知识点总结 手摸手带你学移动端WEB开发 好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/Ro ...
- OpenGL边用边学------2 经典照相机模型
https://blog.csdn.net/smstong/article/details/50290327 实际照相步骤 1 布置场景和调整照相机位置 3 选择镜头对焦Focus 4 按下快门 5 ...
随机推荐
- 主成分分析(PCA)原理及R语言实现 | dimension reduction降维
如果你的职业定位是数据分析师/计算生物学家,那么不懂PCA.t-SNE的原理就说不过去了吧.跑通软件没什么了不起的,网上那么多教程,copy一下就会.关键是要懂其数学原理,理解算法的假设,适合解决什么 ...
- JMM - Java内存模型
内存模型的作用是定义变量的访问规则.包含:实例字段.静态字段.构成数组对象的元素.不包括局部变量和方法参数等线程私有变量. JMM所有变量都在主存,每个线程都有自己的工作内存.线程的工作内存中保存了线 ...
- 【JAVA】servlet执行流程
servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.respon ...
- 2018 HDU多校第三场赛后补题
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...
- 相似的RGB颜色——算法面试刷题3(for google),考察二分
在本题中,每个大写字母代表从“0”到“f”的一些十六进制数字. 红绿蓝三元色#AABBCC可以简写为#ABC. 例如,#15c是颜色#1155cc的简写. 现在,假设两种颜色#ABCDEF和#UVWX ...
- Linux文件系统目录
Linux操作系统目录呈树形结构,文件系统只有一个根目录,其余文件都是从根目录下延伸出来的 上图是一个Linux文件系统目录的展现,现在我们来看一下文件系统目录下相关目录及其功能 根目录( / ) L ...
- mysql中用limit 进行分页有两种方式
代码示例:语句1: select * from student limit 9,4 语句2: slect * from student limit 4 offset 9 // 语句1和2均返回表stu ...
- css属性应用bug大杂烩(后续继续更新)
一.Flex布局使用时的坑: 1.常见的左右分布的flex布局中,左侧给定宽度,右侧占满剩余空间,但当右侧中文字内容很多时,会挤占左侧空间,时左侧不能按照定宽显示. <style> .fa ...
- GetLastError 错误返回码
(0)-操作成功完成.(1)-功能错误.(2)- 系统找不到指定的文件.(3)-系统找不到指定的路径.(4)-系统无法打开文件.(5)-拒绝访问.(6)-句柄无 效.(7)-存储控制块被损坏.(8)- ...
- 【原创】KMP算法代码(C)
//s是模式字符串,t是匹配字符串(可以看我上一篇文章中的叙述) int KMP(const char * s , const char * t) { int slen = strlen(s) , t ...