每日一博 | Go 语言躲坑经验总结
作者 | 百度小程序团队 导读 本文收集一些使用Go开发过程中非常容易踩坑的case,所有的case都有具体的代码示例,以及针对的代码修复方法,以避免大家再次踩坑。通常这些坑的特点就是代码正常能编译,但运行结果不及预期或是引入内存漏洞的风险。 全文7866字,预计阅读时间20分钟。 01 参数传递误用 1.1 误对指针计算Sizeof 对任何指针进行unsafe.Sizeof计算,返回的结果都是 8 (64位平台下)。稍不注意就会引发错误。 错误示例: func TestSizeofPtrBug(t *testing.T) { type CodeLocation struct { LineNo int64 ColNo int64 } cl := &CodeLocation{10, 20} size := unsafe.Sizeof(cl) fmt.Println(size) // always return 8 for point size } 建议使用示例:单独编写一个只处理值大小的函数 ValueSizeof。 func TestSizeofPtrWithoutBug(t ...


