Go 语言编译后的可执行程序中,一般包含源码的一些信息,当panic的时候,会暴露出编译时的源码路径,做为一个强迫症晚期患者,这是不可容忍的。Go语言编译器提供了选项 -trimpath
用于解决这个问题。
Go语言的 container/ring
包实现了环形链表的操作。
Golang是静态编译型语言,在编译时就将所有引用的库全部加载打包到最终的可执行程序中(CGO除外),在运行时不需要动态加载其他共享库。这样设计的好处很多,但是如果某些场景下需要实现功能的可插拔则非常不方便。 在Go 1.8更新中,Go语言提供了Go Plugin机制,可以在运行时动态加载外部功能。
本文记录一些 Go Module 私有库引用中遇到的问题及解决方案
Go 语言内置的 encoding/base64
提供了 base64 编码与解码功能。主要方法见 base64 package · go.dev
记录一些go语言error处理的最佳实践
在Go语言当中,可以为struct添加自定义标签,以优雅简单的方式存储字段的元数据(例如:ORM映射,数据校验类型等等)。标签信息都是静态的,不需要实例化struct也可以通过反射获取到。