Go语言爱好者周刊:第 124 期
这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[2] 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。
题图:Go1.18 Beta1 发布
刊首语
上期的题目:
package main
import "fmt"
func main() {
var i float64 = 3 / 2
fmt.Print(i)
}
A:1;B:1.5;C:编译错误;D:1.49
正确答案:A。关键在于 3/2 计算的结果,3、2 这是整型字面值常量。根据 Go 的规则,3/2 结果也是整型,因此是 1,最后会隐式转换为 float64。
本期提供一道关于 json 和 context 的题:
package main
import (
"context"
"encoding/json"
"fmt"
)
func main() {
data, _ := json.Marshal(context.WithValue(context.Background(), "a", "b"))
fmt.Println(string(data))
}
资讯
1、Gorilla Toolkit 寻找新的维护者[3]
有好些熟悉的库,比如 mux、schema、handlers、sessions 等。
2、Go1.18 中 interface{} 替换为 any[4]
执行类似 gofmt -w -r 'interface{} -> any' src
命令替换。
3、immudb 1.2 发布[5]
用于系统和应用程序的轻量级高速不可变数据库。
4、go-mysql 1.4.0 发布[6]
纯 Go 实现的 MySQL 网络协议库。
5、Bleve 2.3.0 发布[7]
Go 实现的全文本搜索和索引库。
6、XLSX 3.2.4 发布[8]
用于读取和写入 XLSX(Excel)文件的库。
Go 发布了 Go1.18 Beta1 版本,Russ Cox 专门发布了一篇博文简单介绍:https://go.dev/blog/go1.18beta1。
文章
1、Go网址导航
各种 Go 资源越来越多,但很多好资源,很多人并不知道,于是萌生了做一个「Go网址导航」,网址:https://hao.studygolang.com/,基于 studygolang 子域名构建,是自然而然的事情。
企业内部搭建搜索引擎常用 Solr、Elasticsearch,它们都是使用 Java 实现的,底层依赖 Lucene,Java 相对来说占用较多内存。而今天要介绍的这个项目,目标就是作为 ES 的替代者,一个轻量级搜索引擎:Zinc。
有各种工具。
本文是 Go 爱好者「LuciferMS」投稿。
作为一名开发人员,我有时需要为我的应用程序创建 PDF 报告。
从重构说起。
开源项目
1、MapReduce[9]
Go 的 Map-Reduce 框架。
2、miniredis[10]
纯 Go Redis 测试服务器,用于 Go 单元测试。
3、netlink[11]
包 netlink 提供对 Linux netlink 套接字的低级访问。
4、singleflight[12]
支持泛型的 singleflight。
5、Helmet[13]
Go 实现的轻量级云原生 API 网关。
资源&&工具
1、gofumpt[14]
一个严格的 gofmt 工具。
2、golang-base-project[15]
一个最小的 Go 项目,具有现成的用户身份验证功能。所有前端资产在每次页面加载时应小于 100 kB。
3、nvm-windows[16]
适用于 Windows 的node.js 版本管理实用程序,使用 Go 编写。
订阅
这个周刊每周日发布,同步更新在Go语言中文网[17]和微信公众号[18]。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。
参考资料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Gorilla Toolkit 寻找新的维护者: https://github.com/gorilla/mux/issues/659
[4]Go1.18 中 interface{} 替换为 any: https://github.com/golang/go/commit/2580d0e08d5e9f979b943758d3c49877fb2324cb
[5]immudb 1.2 发布: https://github.com/codenotary/immudb
[6]go-mysql 1.4.0 发布: https://github.com/go-mysql-org/go-mysql
[7]Bleve 2.3.0 发布: https://github.com/blevesearch/bleve
[8]XLSX 3.2.4 发布: https://github.com/tealeg/xlsx
[9]MapReduce: https://github.com/BWbwchen/MapReduce
[10]miniredis: https://github.com/alicebob/miniredis
[11]netlink: https://github.com/mdlayher/netlink
[12]singleflight: https://github.com/marwan-at-work/singleflight
[13]Helmet: https://github.com/Spacewalkio/Helmet
[14]gofumpt: https://github.com/mvdan/gofumpt
[15]golang-base-project: https://github.com/uberswe/golang-base-project
[16]nvm-windows: https://github.com/coreybutler/nvm-windows
[17]Go语言中文网: https://studygolang.com/go/weekly
[18]微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91