跳到主要内容
一介布衣
全栈开发者
查看所有作者

Go 里的 slice 和 map,先吃透零值和共享底层数组再写业务

· 阅读需 3 分钟
一介布衣
全栈开发者

Go 初学阶段很容易把 slice 和 map 当成“比数组和字典好用一点的容器”。真正开始写业务后,很多让人困惑的 bug 其实都和这两个基础类型有关:为什么函数里改了 slice,外面数据也变了;为什么 map 还没赋值就 panic;为什么看起来只是截了个子切片,内存却迟迟下不来。

接口最好从调用方倒着定义,别在实现还没稳定时先抽象

· 阅读需 3 分钟
一介布衣
全栈开发者

Go 学久一点以后,很多人都会记住一句话:interface 要小。但真到项目里,接口问题往往不是“大或小”这么简单,而是抽象出现得太早。实现只有一种、调用方式还没定稳,就先定义一堆 UserServiceOrderRepository 接口,最后只会让代码多一层跳转。