继续国庆前的关于《Go语言编程》本书的练习,报告问题,解决问题。
第四章的示例 一看风格应该是许式伟的,总体结构很清楚,跟第二章的示例一样的目录结构风格。
这章问题不多,
- 同样是因为编排问题的elseif
- 整个示例中因为是只演示部分功能,缺少了Room这个struct 编译的时候会出错,简单解决办法就是放置一空的struct
- 这一章最后一个错误,我发现在上一章也有,就是在切片的时候,容易忽略一个问题。
在cg/center.go 的removePlayer中有这样一段
if i == len( server.players) - 1{
server.players=server.players[:i-1]
}
意思就是在如果remove的player是最后一个的时候,就切片slice最开始到这个之前的,表面上看这是对的,但实际上切片如果写成players[:i]是不包括第i个的,所以这里会多删除一个player而且如果只有2个player的情况下这个就为空了。
Command>
listplayer
Failed. No player online.
所以修改成
if i == len( server.players) - 1{
server.players=server.players[:i]
}
以上结果是实例测试的,欢迎补充和说明。