这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Go Stream API 实现图
本期不出题目了,看上期的题目。
以下代码输出什么?
package main
import "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,这是进行了安全更新。这次升级只包含了一个安全问题修复。
rsc 发起的讨论。
BGP 的 Go 实现。
线程安全的 process bar。
go标准库中的os/exec包对调用外部程序提供了支持,本文详细介绍os/exec的使用姿势。
适合新手学习的项目。
gRPC payload 的默认格式是 Protobuf,但是 gRPC-Go 的实现中也对外暴露了 Codec interface ,实际上,它支持任意的 payload 编码。
在这篇文章中,我们就来简单看一下 slog 的 proposal 以及它的初始实现。
1、rueidis
一个快速的 Go Redis 客户端。
2、permify
开源的授权服务。
3、go-wiki
Wikipedia 的 Go API 封装。
4、hydra
OpenID 认证的 OAuth 2.0 服务器和 OpenID 连接提供程序。
5、shardmap
使用泛型的高性能、高并发和简单的分片 hashmap 实现。
Russ Cox 在 GopherCon 2022 的演讲。
检查 error 是否 wrap,方便 debug。
3、alphavet
检测函数是否按照字母顺序排序。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。