Appearance
拓展 1-Go 开发技巧
Go 开发技巧
说明
本小节是拓展内容,笔者会不定期更新 Go 开发技巧,使该技巧的内容尽可能全,并保证技巧的实用性。
Go 开发技巧
- package 的名字和目录名一样,main 除外
- string 表示的是不可变的字符串变量,对 string 的修改是比较重的操作,基本上都需要重新申请内存,如果没有特殊需要,需要修改时多使用 []byte
- 尽量使用 strings 库操作 string,这样做可以提高性能
- append 要小心自动分配内存,append 返回的可能是新分配的地址
- 如果要直接修改 map 的 value 值,则 value 只能是指针,否则要覆盖原来的值
- map 在并发中需要加锁
- 编译过程无法检查 interface{} 的转换,只有运行时检查,小心引起 panic
- 使用 defer,保证退出函数时释放资源
- 尽量少用全局变量,通过参数传递,使每个函数都是“无状态”的,这样减少耦合,也方便分工和单元测试
- 参数如果比较多,将相关参数定义成结构体传递