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也可以通过反射获取到。
bcrypt
是一个由Niels Provos以及David Mazières根据blowfish
加密演算法所设计的密码杂凑函式,于1999年在USENIX中展示。实作中bcrypt
会使用一个加盐的流程以防御彩虹表攻击,同时bcrypt
还是适应性函式,它可以借由增加迭代次数来抵御日益增进的电脑运算能力的暴力法破解。[来自维基百科]