手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

转:go语言扫雷

首页 > Go >

 不要以为扫雷 就是游戏扫雷,其实只不过是扫清程序中可能会遇到的坑。比如原作者写的if else中不能重复定义变量就是一个坑 。我原来想,我要定义一个变量,但他可能会变,特别是[]byte,长度只能用常量。这可怎么办,于是我想直接定义在if else中吧。if a { var a1 [128]byte} elseif b { var a1[256]byte},结果嘛,当然是报错的。。后来才发现这是个坑。当然后面我也解决了这个问题了。。。换个角度make一下。。make的时候就可以用变量了。

以下内容来自:http://my.oschina.net/meilihao/blog/123698

XML/HTML代码
  1. 1.//实现前导零出错:sn:="7DC3"+fmt.printf("%05d",  uint16(rawdata[2])&0xFF+uint16(rawdata[1]))  
  2.   
  3. &:[fmt.Printf返回的是一个int和一个error,不能与string用+号一起操作]  
  4.   
  5. sn :fmt.Sprintf("%s%05d", "7DC3", uint16(rawdata[2])&0xFF+uint16(rawdata[1]))或fmt.Sprintf("7DC3%05d",uint16(rawdata[2])&0xFF+uint16(rawdata[1]))  
  6.   
  7. 2.//fmt.Sprint不能输出  
  8.   
  9. &:根据fmt包API描述,fmt.Sprint是返回字符串,与fmt.Print的标准输出不同.  
  10.   
  11. 3.//go run *.go,且*.go引用同一packge中其他文件的函数时,提示undefined "函数名"  
  12.   
  13. &:[go run 时,只会编译当前文件再运行,没有导入其他文件的自定义函数]要先go build 再运行./*  
  14.   
  15. 4.//func FormatInt(i int64, base int) string,base的意思  
  16.   
  17. &:base表示进制,如八进制(8),十进制(10)等  
  18.   
  19. 5.//在if..else中定义同一个变量出错  
  20.   
  21. &:在golang语法中必须在外面先定义好,再在if..else结构中使用.  
  22.   
  23. 6.//go build/install 出错  
  24.   
  25. &:执行命令时需两个条件GOPATH和当前目录下有*.go的文件  
  26.   
  27. 7.//panic template: unexpected EOF  
  28.   
  29. &:可能是{{}}标签没有闭合  
  30.   
  31. 8.//error信息中template(*Template).Execute  
  32.   
  33. &:检查顺序:先确认go代码正确,然后看调用的模板名称是否正确或已存在,最后检查模板中的golang标签是否正确(或关闭)  
  34.   
  35. 9.//http.Get("www.ip138.com") unsupported protocol scheme ""  
  36.   
  37. &:使用http.Get时必须写明使用的协议,应使用http.Get("http://www.ip138.com")  
我另外遇到一个问题就是我定义了一下struct,然后我在init前,就

var a struct,但我在使用a.X = 1的时候就报错了。理由是我的a.X没有初始化。起初没看代码说明,后来仔细看了才发现。。。不得已,在var a struct下面加了一行var a.X int。(当然,这得和 sturct中的结构一致)




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):