Go
使用 Go 编写 WebAssembly 程序
· ☕ 4 分钟
1. WebAssembly 简介 跨平台性,可以在任何支持 WebAssembly 的平台上运行,包括 Web 浏览器、服务器、移动设备等 高性能,采用了一种紧凑的二进制格式,可以在浏览器中快速加载和解析,从而提高应用程序的性能 安全性,采用了一种沙箱模型,可以隔离运行在其中的代码,从而保护系统免受恶

Go mod 使用问题
· ☕ 1 分钟
1. 升级 Go 版本之后 go.sum 版本不匹配 执行命令 go build 报错。 错误提示: missing go.sum entry for module providing package golang.org/x/time/rate; to add 解决办法: 在 go build 之前更新 go.sum,执行命令 go mod tidy 2. tls 错误 执行命令 go mod download 报错。 错误提示: fatal: unable to access 'https://github.com/agiledragon/gomonkey/': GnuTLS recv error (-110): The TLS connection was non-properly terminated. 解决办法: 禁用证书校验执行命令,export

Go 中的时间和时区问题
· ☕ 4 分钟
1. 时间与时区 1.1 时间标准 UTC,世界标准时间,是现在的时间标准,以原子时计时。 GMT,格林威治时间,是以前的时间标准,规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午 12 点。 UTC 时间更加准确,但如果对精度要求不高,可以视两种标准等

Go 私有包的构建和使用
· ☕ 2 分钟
1. 创建一个 Go Modules 项目 创建目录 1 2 mkdir go-test cd go-test 初始化包 1 2 3 4 5 go mod init gitlab.private.com/shaowenchen/go-test go: creating new go.mod: module gitlab.private.com/shaowenchen/go-test go: to add module requirements and sums: go mod tidy 添加业务代码 main.go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "hello world.", }) }) r.Run() } 下载依赖到 vendor 1 2 go mod tidy go mod vendor 本地运行 1 2 3 4 5 go run

实用的算法之布隆过滤
· ☕ 4 分钟
1. 什么是布隆过滤 布隆过滤(Bloom Filter)是布隆在 1970 年提出的一种数据结构。 将元素(x、y、z)通过一系列函数,映射到一个二进制向量(0101 序列),用于快速判断元素 w 是否在一个集合当中。如下图(来自维基百科): 相较于使用单个映射函数