go语言容易踩的坑
切片
range 取地址
1 | func main() { |
1 | //正确写法 |
死循环?
1 | func main() { |
切片传参
1 | func test(arr []int) { |
1 | //切片底层结构 |
切片copy
1 | func main() { |
json.Unmarshal
null
1 | func main() { |
1 | //正确写法 |
interface{}接收数据
1 | func main() { |
defer
defer和return的执行顺序
1 | func test() (b int) { |
闭包
闭包是通过指针操作母函数中的变量
1 | func myPrint(x int) { |
注意变量的作用域
1 | func Foo() (err error) { |
map
初始化的时候尽量指定map容量
1 | m := make(map[int],100) |
range 便利map时,注意map的无序性
1 | func main() { |
nil map写入会panic
1 | func main() { |
map不是并发安全的
1 | func main() { |