您好,匿名用户
随意问技术百科期待您的加入

《Go语言编程》第四章完整示例问题

0 投票

继续国庆前的关于《Go语言编程》本书的练习,报告问题,解决问题。
第四章的示例 一看风格应该是许式伟的,总体结构很清楚,跟第二章的示例一样的目录结构风格。
这章问题不多,

  1. 同样是因为编排问题的elseif
  2. 整个示例中因为是只演示部分功能,缺少了Room这个struct 编译的时候会出错,简单解决办法就是放置一空的struct
  3. 这一章最后一个错误,我发现在上一章也有,就是在切片的时候,容易忽略一个问题。

在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]
            }

以上结果是实例测试的,欢迎补充和说明。

用户头像 提问 2012年 12月1日 @ Sejuani 上等兵 (427 威望)
分享到:

1个回答

0 投票

Ajian其实已经边问边回答了自己的问题,我就不重复的再解释一遍了。书本上的例子确实没有刻意去保持完整性,因为书中引的代码应该是用于阅读用的,而非执行目的。本书是有相应的源代码包下载的,直接下载后编译运行相关的例子即可,不需要苦逼的对着抄一遍。

源代码包请见这个页面的随书下载部分:http://www.ituring.com.cn/book/967

用户头像 回复 2012年 12月1日 @ Wukong 上等兵 (475 威望)
提一个问题:

相关问题

0 投票
1 回复 66 阅读
用户头像 提问 2012年 12月1日 @ Talon 上等兵 (294 威望)
+2 投票
1 回复 64 阅读
0 投票
1 回复 29 阅读
0 投票
1 回复 38 阅读
用户头像 提问 2012年 12月1日 @ Sion 上等兵 (319 威望)
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Varus 上等兵 (281 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...