这里记录每周值得分享的 Go 语言相关内容,周日发布。
本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。
鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 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))
}
A:{};B:{"a":"b"};C:{"Context":0};D:不确定
有好些熟悉的库,比如 mux、schema、handlers、sessions 等。
2、Go1.18 中 interface{} 替换为 any
执行类似 gofmt -w -r 'interface{} -> any' src
命令替换。
用于系统和应用程序的轻量级高速不可变数据库。
纯 Go 实现的 MySQL 网络协议库。
Go 实现的全文本搜索和索引库。
用于读取和写入 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 报告。
从重构说起。
Go 的 Map-Reduce 框架。
纯 Go Redis 测试服务器,用于 Go 单元测试。
3、netlink
包 netlink 提供对 Linux netlink 套接字的低级访问。
支持泛型的 singleflight。
5、Helmet
Go 实现的轻量级云原生 API 网关。
1、gofumpt
一个严格的 gofmt 工具。
一个最小的 Go 项目,具有现成的用户身份验证功能。所有前端资产在每次页面加载时应小于 100 kB。
适用于 Windows 的node.js 版本管理实用程序,使用 Go 编写。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。