Go语言爱好者周刊:第 125 期

polaris · · 2406 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

这里记录每周值得分享的 Go 语言相关内容,周日发布。 本周刊开源(GitHub:[polaris1119/golangweekly](https://github.com/polaris1119/golangweekly)),欢迎投稿,推荐或自荐文章/软件/资源等,请[提交 issue](https://github.com/polaris1119/golangweekly/issues) 。 鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。 ![](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/issue125/cover.png) 题图:表达式语言 ## 刊首语 不知不觉,这是 2021 年最后一期了。Go爱好者周刊已经持续 2 年半了,2022 年会继续和你陪伴。 上期提供一道关于 json 和 context 的题: ```go package main import ( "context" "encoding/json" "fmt" ) func main() { data, _ := json.Marshal(context.WithValue(context.Background(), "a", "b")) fmt.Println(string(data)) } ``` A:{};B:{"a":"b"};C:{"Context":0};D:不确定 正确率 28%,正确答案:C。WithValue 底层是 valueCtx 结构体,其中 key、val 两个字段未导出,这里存放 "a" 和 "b",同时还内嵌了 Context 接口。根据 Marshal 的规则,非导出的不会被序列化。而内嵌 Context 相当于导出了 Context 字段,而它的值是 context.Background(),即 `background = new(emptyCtx)`,emptyCtx 实际是 int 类型,因此选 C。 ## 资讯 1、[Delve 1.8.0 发布](https://github.com/go-delve/delve/releases/tag/v1.8.0) Go 语言调试器。 2、[GoLand 2022.1 路线图:全面支持泛型](https://mp.weixin.qq.com/s/WqoU_cfdFudO0B37ntnBdg) 官方宣布了 GoLand 2022.1 路线图,注意,本文特性不一定全部会在 GoLand 2022.1 中实现。 ## 文章 1、[Go 泛型简明入门教程](https://mp.weixin.qq.com/s/_pJXLJ6W9BFZyWBud7agPQ) 有泛型的 Go 版本 1.18 已经发布了 Beta1 版本,之前陆陆续续介绍了泛型,但可能有些人还是对 Go 泛型没有完整的了解,因此有这份入门教程。 2、[Go 1.18 中的自引用接口,你看懂了吗?](https://mp.weixin.qq.com/s/r7W3WigooZ49GtmGaIBlPQ) 有些场景可能用得到。 3、[必看!6 步入门 Go](https://mp.weixin.qq.com/s/DRpmh41dGAfzSOMsvwy8wA) 一门语言的入门方式,每个人可能不一样,但基础的知识都是必须掌握的。这里整理了一个 Go 语言 6 步入门法,希望对你有帮助。 4、[发现一个很棒的 Go GitHub 项目](https://mp.weixin.qq.com/s/Zc0B8kgRH0dOit85MbGL0w) 这个项目是用于学习和实践 Go 及其相关技术的精彩文章和资源的精选列表。 5、[如何使用 WebAssembly 在浏览器中编译 Go 代码](https://mp.weixin.qq.com/s/AqEaYIRPSKjzZ1AE4cDtHA) 本文接会从 Go Wasm 是什么,怎么运行的,以及未来发展三个方面展开介绍。 7、[go-zero 分布式事务最佳实践](https://mp.weixin.qq.com/s/1hUhSRkWFqFnO6w1PasrGw) go-zero 与 dtm 强强联合,推出了在 go-zero 中无缝接入 dtm 的极简方案,让分布式事务的使用从未如此简单。 8、[为什么你需要更小巧的容器?](https://mp.weixin.qq.com/s/qzM9FqDH92ZUVtcEjKwTSg) 这篇文章出人意料地登上了黑客新闻的头版,并在那里引发了一场富有成效的讨论。 9、[程序员瑞士军刀:各种结构的转换工具](https://mp.weixin.qq.com/s/Qomu3f1-FdExB7Jw6PUXQA) 上次推荐的 「Go网址导航」,其中收录了一项:转换器。 ## 开源项目 1、[requests](https://github.com/carlmjohnson/requests) HTTP 客户端库,还带有用于构建自定义 http 传输的工具,包括用于测试的请求记录器和重放器。 2、[py4go](https://github.com/tliron/py4go) Go 和 Python 之间的紧密双向集成。 3、[btree](https://github.com/tidwall/btree) B 树的 Go 高效实现,支持泛型。 4、[prolog](https://github.com/ichiban/prolog) 一种可嵌入 Go 的 prolog 脚本引擎。 5、[expr](https://github.com/antonmedv/expr) Go 的表达式语言。 ## 资源&&工具 1、[ssl-handshake](https://github.com/tuladhar/ssl-handshake) 用于测试 SSL 握手延迟的命令行工具。 2、[fq](https://github.com/wader/fq) 用于检查二进制数据的工具、语言和解码器。 3、[reviewdog](https://github.com/reviewdog/reviewdog) Go 实现的可以与任何代码分析工具集成的自动代码审查工具。 4、[generic](https://github.com/zyedidia/generic) 一个用 Go 泛型实现的实验性数据结构集合。 5、[盘点那些提高生产力的 VS Code 插件](https://mp.weixin.qq.com/s/_A6tR2rYf97Y8leakf3nOA) 自从 VS Code 问世,流行度不断飙升,其他文本编辑器(非 IDE)的很多用户都转移到了 VS Code,越多用户,越多开发者参与构建生态。 6、[lal](https://github.com/q191201771/lal) Go 直播流媒体网络传输服务。 ## 订阅 这个周刊每周日发布,同步更新在[Go语言中文网](https://studygolang.com/go/weekly)和[微信公众号](https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91)。 微信搜索"Go语言中文网"或者扫描二维码,即可订阅。 ![wechat](https://raw.githubusercontent.com/polaris1119/golangweekly/master/docs/imgs/wechat.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

2406 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传