这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:表达式语言
不知不觉,这是 2021 年最后一期了。Go爱好者周刊已经持续 2 年半了,2022 年会继续和你陪伴。
上期提供一道关于 json 和 context 的题:
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。
Go 语言调试器。
官方宣布了 GoLand 2022.1 路线图,注意,本文特性不一定全部会在 GoLand 2022.1 中实现。
有泛型的 Go 版本 1.18 已经发布了 Beta1 版本,之前陆陆续续介绍了泛型,但可能有些人还是对 Go 泛型没有完整的了解,因此有这份入门教程。
有些场景可能用得到。
一门语言的入门方式,每个人可能不一样,但基础的知识都是必须掌握的。这里整理了一个 Go 语言 6 步入门法,希望对你有帮助。
这个项目是用于学习和实践 Go 及其相关技术的精彩文章和资源的精选列表。
5、如何使用 WebAssembly 在浏览器中编译 Go 代码
本文接会从 Go Wasm 是什么,怎么运行的,以及未来发展三个方面展开介绍。
go-zero 与 dtm 强强联合,推出了在 go-zero 中无缝接入 dtm 的极简方案,让分布式事务的使用从未如此简单。
这篇文章出人意料地登上了黑客新闻的头版,并在那里引发了一场富有成效的讨论。
上次推荐的 「Go网址导航」,其中收录了一项:转换器。
1、requests
HTTP 客户端库,还带有用于构建自定义 http 传输的工具,包括用于测试的请求记录器和重放器。
2、py4go
Go 和 Python 之间的紧密双向集成。
3、btree
B 树的 Go 高效实现,支持泛型。
4、prolog
一种可嵌入 Go 的 prolog 脚本引擎。
5、expr
Go 的表达式语言。
用于测试 SSL 握手延迟的命令行工具。
2、fq
用于检查二进制数据的工具、语言和解码器。
Go 实现的可以与任何代码分析工具集成的自动代码审查工具。
4、generic
一个用 Go 泛型实现的实验性数据结构集合。
自从 VS Code 问世,流行度不断飙升,其他文本编辑器(非 IDE)的很多用户都转移到了 VS Code,越多用户,越多开发者参与构建生态。
6、lal
Go 直播流媒体网络传输服务。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。