这里将记录其中之一—— zap。 zap 是 uber 开源的高性能日志框架,不仅一般场景,zap 也完全可以胜任后端与微服务系统。本文基于 zap 版本:v1.21.0快速开始安装go get -u go.uber.org/zap使用func main() { baseLogger, _ := zap.NewDevelopment() defer baseLogger.Sy...
在正式开始讨论指针与接口之前,我们有必要达成共识:Go 中函数传参是传值。普通参数普通参数很容易理解,传值就是把原来的值拷贝一份,再传给函数。那么函数拿到的是副本,对齐的修改自然也不会影响原来的值。playgroundfunc foo...
我不赞成「如何在 A 实现 B」之类的尝试。 每个东西都有它自己的特点,这个特点用好了就是优点,用不好就是缺点。非要用汽车拉磨或用驴子拉货,何必呢。继承 vs 组合一句话解释,继承是「is sth」,组合是「has sth」。Go 采用组合完美契合了它鸭子类型(duck typing)的设计理念。“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。鸭子类型...
当前 Go 版本 1.17.5Go 的错误处理设计关于 Go 的错误处理,一直争议不断。其实 Go 本身的争议也不少 😂。这里不进行评价,只是简单地和主流语言对比,总结一下 Go 的特征。作为一个历史悠久的语言,C 的错误处理非常混乱...