《Go小技巧&易错点100例》博客专栏,主要是总结一下自己Coding过程中遇到的问题以及平时读一些博客的所得,因为做gopher也有了一段时间了,相比Java,有些问题想要利用搜索引擎排查出来可能不是那么的迅速,所以在这里以文章的形式总结出来,也方便各位gopher们能够顺利的解决所遇到的问题,并能够习得一些小技巧。
在线地址:https://www.processon.com/view/link/66913a1de7d7970dad42d812
图片已更新到第25篇
标题 | 内容 | 代码 |
---|---|---|
开篇词 | - | - |
第一篇 | 1.函数返回值屏蔽 2.context继承特性 3.禁止main函数退出 4.map值的遍历次序 |
code |
第二篇 | 5.fallthrough关键字 6.简式变量声明仅能在函数内部使用 7.防止main函数提前退出 8.包循环依赖错误 |
code |
第三篇 | 9.Go项目中对依赖库版本的升级与降级 10.goroutine异常 11.Go中slice作为参数是值传递 |
code |
第四篇 | 12.Go omitempty关键字 13.JSON Marshal需要注意的问题 14.Go iota关键字 |
code |
第五篇 | 15.goroutine控制并发数量的方式 16.Go发起HTTP请求 17.断言 |
code |
第六篇 | 18.pprof查看运行时状态信息 19.goruntine使用后的销毁 |
code |
第七篇 | 20.Go日志输出到文件 21.recover方式的异常处理 22.Go HTTP请求重定向 |
code |
第八篇 | 23.优雅的关闭Go程序 24.指针声明后未赋值前不能直接操作 25.channel方式代替time.Sleep |
code |
第九篇 | 26.遍历指针数组 27.检查nil以提升程序安全性和健壮性 |
code |
第十篇 | 28.Go string的长度 29.Go优雅的Test方法 30.slice的各种截取 |
code |
第十一篇 | 31.Go函数式编程 32.不建议map使用指针类型作为Key 33.直接使用值为nil的slice和map |
code |
第十二篇 | 34.Go库函数和Protobuf函数在JSON序列化Message类型结构体上的不同 35.Go HTTP全局异常处理器 |
code |
第十三篇 | 36.Go HTTP文件上传下载 37.Go程序弹出浏览器 |
code |
第十四篇 | 38.init()函数的执行机制 39.sync.Once同步原语 40.Go进行保留小数的运算 |
code |
第十五篇 | 41.Go程序跟踪函数的执行时间 42.Go链式编程 43.结构体值接收者和指针接收者实现接口的区别 |
code |
第十六篇 | 44.切片的长度和容量 45.for循环中使用defer 46.Go语言TrimLeft函数 |
code |
第十七篇 | 47.Go定时任务 48.Cgo简单使用 |
code |
第十八篇 | 49.使用下划线增加数字可读性 50.格式化方法中多次使用相同参数 51.数组的模糊计数 |
code |
第十九篇 | 52.goto语法和label的使用 | code |
第二十篇 | 53.使用slice和map的内置函数 54.避免不必要的类型转换 55.优雅的字符串拼接方式 |
code |
第二十一篇 | 56.errors.Is 方法与== 两种方式进行error 比较57.带缓冲channel和无缓冲channel区别 58.defer func() 函数返回值 |
code |
第二十二篇 | 59.Go有符号类型和无符号类型 60.Go数组和切片 61.Go结构体类型比较 |
code |
第二十三篇 | 62.Go Module控制Go版本 63.int转string注意事项 64.Go项目查看mod依赖关系 |
code |
第二十四篇 | 65.go interface{}类型校验 66.go mod tidy验签失败 |
code |
第二十五篇 | 67.使用atomic包实现无锁并发控制 68.Gin框架的中间件机制 69.搞懂nil切片和空切片 |
code |
第二十六篇 | 70.string转[]byte是否会发生内存拷贝 71.Go程序获取文件的哈希值 |
code |
DOING |