Go语言爱好者周刊:第 169 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:模糊测试
刊首语
上期题目的正确率 23%,一起看看你对了吗?以下代码输出什么?
package main
import "fmt"
func main() {
a := (-3) % 2
b := (-3) % (-2)
fmt.Println(a, b)
}
A:1 1;B:-1 1;C:-1 -1;D:编译错误
正确答案:C。如果你想不明白,可以想想 x / y 的结果:
a := (-3) / 2 // -1
b := (-3) / (-2) // 1
如果你能想明白这个结果,上面取模的结果也就明白了。
相关的官方文档见:https://go.dev/ref/spec#Integer_operators。
资讯
类似 jq,但用于二进制文件。
将 CLI 活动记录到 GIF。
尽可能快速、轻松地交付 Go 二进制文件。
bitset 的 Go 实现。
IPFS 的 Go 实现。
6、清理 map
Go 1.21 版本可能会增加 clear 预定义函数,用于清理 map。实际上,Go 1.20 可能就会有该功能:https://github.com/golang/go/issues/56351。
文章
context包比较小,是阅读源码比较理想的一个入手,并且里面也涵盖了许多 Go 设计理念可以学习。
这里整理使用reflect操作channel,把它分享给大家。
在工作中,你一定遇到过要在服务器上抓包的场景,可又苦于找不到合适的工具。今天就给大家推荐一个使用go语言编写的抓包工具goreplay。
4、揭秘Go内存!
在处理内存泄露的时候,想到了一种从内存中查看哪些对象的问题,于是就对实际跑着的程序内存进行了解析,通过可视化的方式有助于理解go的内存布局和管理。
代码:https://github.com/xiazemin/dns_proxy。
面向对象设计模式的 Go 实现。
本文旨在分享开发者在压测 Hertz 时需要了解的场景和技术问题。这些建议有助于用户更好地结合真实 HTTP 场景对 Hertz 进行调优,使之更贴合业务需要、发挥最佳性能。
英文的。
开源项目
Go 最准确的自然语言检测库,适用于长文本和短文本。
2、pipeline
支持并发任务的异步数据 pipeline。
资源&&工具
Go Team 成员在 GopherCon 2022 大会上的演讲视频。
searchcode.com 可以了解下。
3、finch
用于容器开发的开源工具。
4、gotty
将终端作为 Web 应用程序共享。
订阅
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。