这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Go1.18 发布,一个重大的版本
上期题目是关于取模运算符的。
以下代码输出什么?
package main
import "fmt"
func main() {
fmt.Println(1 % 2.0)
fmt.Println(int(1) % 2.0)
}
A:1 1;B:1.0 1.0;C:编译不通过;D:1.0 1
正确答案 C,该题正确率 60%,还不错。这里有一点:% 运算只能用于 整数类型。1 % 2.0,两个操作数都是字面量常量,都是无类型的,这时会以 2.0 的 untype float constant 为准,1 隐式转为 untype float constant,所以编译错误。
而 int(1) % 2.0 中,2.0 是无类型的,int(1) 是 int,因此 2.0 会转为 int,因此能正常编译。
本期题目:以下代码输出什么?
func main() {
var m sync.Mutex
fmt.Print("A, ")
m.Lock()
go func() {
time.Sleep(200 * time.Millisecond)
m.Unlock()
}()
m.Lock()
fmt.Print("B ")
}
A:A,B;B:A,C:A,fatal error;D:fatal error...
Go 缓存库,具有零 GC 开销和高并发性能。
类似 Make 的工具。
快速构建 CLI APP。
全面支持泛型。
今天发现有人写了一本书:《Wasm Cooking with Golang》,即使用 Go 开发 WASM 应用,该书是英文的。
Go 1.18 是一个大型版本,其中包括新功能、性能改进以及对该语言的最大更改。
fuzzing 是 Go1.18 中的新特性。这篇是关于模糊测试原理的文章。
官方 Release Note 中文翻译版。
本文介绍 Gin 的一些知识点,如自定义 Response,中间件等。
clickhouse 的 Go 客户端,支持 Go1.18。
2、sqlite
纯 Go 实现的 SQLite 驱动。
3、crane
首款企业成本优化的开源工具,腾讯出品。
Google Cloud Spanner 的 database/sql 驱动。
5、loggie
一个基于 Golang 的轻量级、高性能、云原生日志采集 Agent 和中转处理 Aggregator,支持多 Pipeline 和组件热插拔。
6、netgo
用于帮助 Web 服务器开发的工具和实用程序的集合。
Gopher 可打印的 3D 模型。
精通 Go 语言。
3、Fixtory
一个测试 fixture 工厂,利用泛型初始化类型安全的、灵活的 fixture。
将 curl 命令转换为任意编程语言代码。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。