Skip to content

Latest commit

 

History

History
136 lines (73 loc) · 5.12 KB

issue-125.md

File metadata and controls

136 lines (73 loc) · 5.12 KB

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

这里记录每周值得分享的 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。

资讯

1、Delve 1.8.0 发布

Go 语言调试器。

2、GoLand 2022.1 路线图:全面支持泛型

官方宣布了 GoLand 2022.1 路线图,注意,本文特性不一定全部会在 GoLand 2022.1 中实现。

文章

1、Go 泛型简明入门教程

有泛型的 Go 版本 1.18 已经发布了 Beta1 版本,之前陆陆续续介绍了泛型,但可能有些人还是对 Go 泛型没有完整的了解,因此有这份入门教程。

2、Go 1.18 中的自引用接口,你看懂了吗?

有些场景可能用得到。

3、必看!6 步入门 Go

一门语言的入门方式,每个人可能不一样,但基础的知识都是必须掌握的。这里整理了一个 Go 语言 6 步入门法,希望对你有帮助。

4、发现一个很棒的 Go GitHub 项目

这个项目是用于学习和实践 Go 及其相关技术的精彩文章和资源的精选列表。

5、如何使用 WebAssembly 在浏览器中编译 Go 代码

本文接会从 Go Wasm 是什么,怎么运行的,以及未来发展三个方面展开介绍。

7、go-zero 分布式事务最佳实践

go-zero 与 dtm 强强联合,推出了在 go-zero 中无缝接入 dtm 的极简方案,让分布式事务的使用从未如此简单。

8、为什么你需要更小巧的容器?

这篇文章出人意料地登上了黑客新闻的头版,并在那里引发了一场富有成效的讨论。

9、程序员瑞士军刀:各种结构的转换工具

上次推荐的 「Go网址导航」,其中收录了一项:转换器。

开源项目

1、requests

HTTP 客户端库,还带有用于构建自定义 http 传输的工具,包括用于测试的请求记录器和重放器。

2、py4go

Go 和 Python 之间的紧密双向集成。

3、btree

B 树的 Go 高效实现,支持泛型。

4、prolog

一种可嵌入 Go 的 prolog 脚本引擎。

5、expr

Go 的表达式语言。

资源&&工具

1、ssl-handshake

用于测试 SSL 握手延迟的命令行工具。

2、fq

用于检查二进制数据的工具、语言和解码器。

3、reviewdog

Go 实现的可以与任何代码分析工具集成的自动代码审查工具。

4、generic

一个用 Go 泛型实现的实验性数据结构集合。

5、盘点那些提高生产力的 VS Code 插件

自从 VS Code 问世,流行度不断飙升,其他文本编辑器(非 IDE)的很多用户都转移到了 VS Code,越多用户,越多开发者参与构建生态。

6、lal

Go 直播流媒体网络传输服务。

订阅

这个周刊每周日发布,同步更新在Go语言中文网微信公众号

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat