这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。
题图:Go Stream API 实现图
本期不出题目了,看上期的题目。
以下代码输出什么?
package mainimport "fmt"
func main() {
a := []int{5}
for range a {
a = append(a, 1)
}
fmt.Println(len(a))
}
A:2;B:编译错误;C:运行 panic
正确答案 A,正确率挺高的。
Go 官方发布了两个新的小版本:Go1.19.3 和 Go1.18.8,这是进行了安全更新。这次升级只包含了一个安全问题修复。
2、用户自定义 iteration[3]
rsc 发起的讨论。
3、gobgp 3.8 发布[4]
BGP 的 Go 实现。
4、progressbar 3.12 发布[5]
线程安全的 process bar。
go标准库中的os/exec包对调用外部程序提供了支持,本文详细介绍os/exec的使用姿势。
适合新手学习的项目。
gRPC payload 的默认格式是 Protobuf,但是 gRPC-Go 的实现中也对外暴露了 Codec interface ,实际上,它支持任意的 payload 编码。
4、slog:Go官方版结构化日志包[6]
在这篇文章中,我们就来简单看一下 slog 的 proposal 以及它的初始实现。
1、rueidis[7]
一个快速的 Go Redis 客户端。
2、permify[8]
开源的授权服务。
3、go-wiki[9]
Wikipedia 的 Go API 封装。
4、hydra[10]
OpenID 认证的 OAuth 2.0 服务器和 OpenID 连接提供程序。
5、shardmap[11]
使用泛型的高性能、高并发和简单的分片 hashmap 实现。
1、Go 是如何保持向后兼容的?[12]
Russ Cox 在 GopherCon 2022 的演讲。
2、wrapcheck[13]
检查 error 是否 wrap,方便 debug。
3、alphavet[14]
检测函数是否按照字母顺序排序。
这个周刊每周日发布,同步更新在Go语言中文网[15]和微信公众号[16]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]用户自定义 iteration: https://github.com/golang/go/discussions/56413
[4]gobgp 3.8 发布: https://github.com/osrg/gobgp
[5]progressbar 3.12 发布: https://github.com/schollz/progressbar
[6]slog:Go官方版结构化日志包: https://tonybai.com/2022/10/30/first-exploration-of-slog/
[7]rueidis: https://github.com/rueian/rueidis
[8]permify: https://github.com/Permify/permify
[9]go-wiki: https://github.com/trietmn/go-wiki
[10]hydra: https://github.com/ory/hydra
[11]shardmap: https://github.com/chainbound/shardmap
[12]Go 是如何保持向后兼容的?: https://www.youtube.com/watch?v=v24wrd3RwGo
[13]wrapcheck: https://github.com/tomarrell/wrapcheck
[14]alphavet: https://github.com/skx/alphavet
[15]Go语言中文网: https://studygolang.com/go/weekly
[16]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91