下载此文档

50个Go开发者常犯的错误.doc


文档分类:IT计算机 | 页数:约72页 举报非法文档有奖
1/72
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/72 下载此文档
文档列表 文档介绍
阅读目录
• 开大括号不能放在单独的一行
• 未使用的变量
• 未使用的Imports
• 简式的变量声明仅可以在函数内部使用
• 使用简式声明重复声明变量
• idental Variable Shadowing
• 不使用显式类型,无法使用“nil”来初始化变量
• 使用“nil” Slices and Maps
• Map的容量
• 字符串不会为nil
• Array函数的参数
• 在Slice和Array使用“range”语句时的出现的不希望得到的值
• Slices和Arrays是一维的
• 访问不存在的Map Keys
• Strings无法修改
• String和Byte Slice之间的转换
• String和索引操作
• 字符串不总是UTF8文本
• 字符串的长度
• 在多行的Slice、Array和Map语句中遗漏逗号

• 内建的数据结构操作不是同步的
• String在“range”语句中的迭代值
• 对Map使用“for range”语句迭代
• "switch"声明中的失效行为
• 自增和自减
• 按位NOT操作
• 操作优先级的差异
• 未导出的结构体不会被编码
• 有活动的Goroutines下的应用退出
• 向无缓存的Channel发送消息,只要目标接收者准备好就会立即返回
• 向已关闭的Channel发送会引起Panic
• 使用"nil" Channels
• 传值方法的接收者无法修改原有的值
• 关闭HTTP的响应
• 关闭HTTP的连接
• 比较Structs, Arrays, Slices, and Maps
• 从Panic中恢复
• 在Slice, Array, and Map "range"语句中更新引用元素的值
• 在Slice中"隐藏"数据
• Slice的数据“毁坏”
• 陈旧的(Stale)Slices
• 类型声明和方法
• 从"for switch"和"for select"代码块中跳出
• "for"声明中的迭代变量和闭包
• Defer函数调用参数的求值
• 被Defer的函数调用执行
• 失败的类型断言
• 阻塞的Goroutine和资源泄露
• 使用指针接收方法的值的实例
• 更新Map的值
• "nil" Interfaces和"nil" Interfaces的值
• 栈和堆变量
• GOMAXPROCS, 并发, 和并行
• 读写操作的重排顺序
• 优先调度  
Go是一门简单有趣的语言,但与其他语言类似,它会有一些技巧。。。这些技巧的绝大部分并不是Go的缺陷造成的。如果你以前使用的是其他语言,那么这其中的有些错误就是很自然的陷阱。其它的是由错误的假设和缺少细节造成的。 
如果你花时间学习这门语言,阅读官方说明、wiki、邮件列表讨论、大量的优秀博文和Rob Pike的展示,以及源代码,这些技巧中的绝大多数都是显而易见的。尽管不是每个人都是以这种方式开始学习的,但也没关系。如果你是Go语言新人,那么这里的信息将会节约你大量的调试代码的时间。 
初学者 
开大括号不能放在单独的一行 
在大多数其他使用大括号的语言中,你需要选择放置它们的位置。Go的方式不同。你可以为此感谢下自动分号的注入(没有预读)。是的,Go中也是有分号的:-)失败的例子: 
package main 
import "fmt"
func main() 
{ //error, can't have the opening brace on a separate line
( "hello there!" ) 

编译错误: 
/tmp/sandbox826898458/:6: syntax error: unexpected semicolon or newline before { 
有效的例子: 
package main 
import "fmt"
func main() { 
( "works!" ) 

未使用的变量 
如果你有未使用的变量,代码将编译失败。当然也有例外。在函数内一定要使用声明的变量,但未使用的全局变量是没问题的。 
如果你给未使用的变量分配了一个新的值,代码还是会编译失败。你需要在某个地方使用这个变量,才能让编译器愉快的编译。 
Fails: 
package main 
var gvar int //not an error
func main() { 

50个Go开发者常犯的错误 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数72
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小304 KB
  • 时间2018-05-29
最近更新