Go語言愛好者周刊:第 124 期
這里記錄每周值得分享的 Go 語言相關(guān)內(nèi)容,周日發(fā)布。
本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟件/資源等,請提交 issue[2] 。
鑒于一些人可能沒法堅(jiān)持把英文文章看完,因此,周刊中會盡可能推薦優(yōu)質(zhì)的中文文章。優(yōu)秀的英文文章,我們的 GCTT 組織會進(jìn)行翻譯。

題圖:Go1.18 Beta1 發(fā)布
刊首語
上期的題目:
package?main
import?"fmt"
func?main()?{
?var?i?float64?=?3?/?2
?fmt.Print(i)
}
A:1;B:1.5;C:編譯錯(cuò)誤;D:1.49
正確答案:A。關(guān)鍵在于 3/2 計(jì)算的結(jié)果,3、2 這是整型字面值常量。根據(jù) Go 的規(guī)則,3/2 結(jié)果也是整型,因此是 1,最后會隱式轉(zhuǎn)換為 float64。
本期提供一道關(guān)于 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 尋找新的維護(hù)者[3]
有好些熟悉的庫,比如 mux、schema、handlers、sessions 等。
2、Go1.18 中 interface{} 替換為 any[4]
執(zhí)行類似 gofmt -w -r 'interface{} -> any' src 命令替換。
3、immudb 1.2 發(fā)布[5]
用于系統(tǒng)和應(yīng)用程序的輕量級高速不可變數(shù)據(jù)庫。
4、go-mysql 1.4.0 發(fā)布[6]
純 Go 實(shí)現(xiàn)的 MySQL 網(wǎng)絡(luò)協(xié)議庫。
5、Bleve 2.3.0 發(fā)布[7]
Go 實(shí)現(xiàn)的全文本搜索和索引庫。
6、XLSX 3.2.4 發(fā)布[8]
用于讀取和寫入 XLSX(Excel)文件的庫。
Go 發(fā)布了 Go1.18 Beta1 版本,Russ Cox 專門發(fā)布了一篇博文簡單介紹:https://go.dev/blog/go1.18beta1。
文章
各種 Go 資源越來越多,但很多好資源,很多人并不知道,于是萌生了做一個(gè)「Go網(wǎng)址導(dǎo)航」,網(wǎng)址:https://hao.studygolang.com/,基于 studygolang 子域名構(gòu)建,是自然而然的事情。
企業(yè)內(nèi)部搭建搜索引擎常用 Solr、Elasticsearch,它們都是使用 Java 實(shí)現(xiàn)的,底層依賴 Lucene,Java 相對來說占用較多內(nèi)存。而今天要介紹的這個(gè)項(xiàng)目,目標(biāo)就是作為 ES 的替代者,一個(gè)輕量級搜索引擎:Zinc。
3、程序員瑞士軍刀:各種結(jié)構(gòu)的轉(zhuǎn)換工具
有各種工具。
本文是 Go 愛好者「LuciferMS」投稿。
5、實(shí)戰(zhàn):如何使用 Go 從 HTML 生成 PDF 報(bào)告
作為一名開發(fā)人員,我有時(shí)需要為我的應(yīng)用程序創(chuàng)建 PDF 報(bào)告。
6、我好像發(fā)現(xiàn)了一個(gè) Go 的 Bug?
從重構(gòu)說起。
開源項(xiàng)目
1、MapReduce[9]
Go 的 Map-Reduce 框架。
2、miniredis[10]
純 Go Redis 測試服務(wù)器,用于 Go 單元測試。
3、netlink[11]
包 netlink 提供對 Linux netlink 套接字的低級訪問。
4、singleflight[12]
支持泛型的 singleflight。
5、Helmet[13]
Go 實(shí)現(xiàn)的輕量級云原生 API 網(wǎng)關(guān)。

資源&&工具
1、gofumpt[14]
一個(gè)嚴(yán)格的 gofmt 工具。
2、golang-base-project[15]
一個(gè)最小的 Go 項(xiàng)目,具有現(xiàn)成的用戶身份驗(yàn)證功能。所有前端資產(chǎn)在每次頁面加載時(shí)應(yīng)小于 100 kB。
3、nvm-windows[16]
適用于 Windows 的node.js 版本管理實(shí)用程序,使用 Go 編寫。
訂閱
這個(gè)周刊每周日發(fā)布,同步更新在Go語言中文網(wǎng)[17]和微信公眾號[18]。
微信搜索"Go語言中文網(wǎng)"或者掃描二維碼,即可訂閱。
參考資料
polaris1119/golangweekly: https://github.com/polaris1119/golangweekly
[2]提交 issue: https://github.com/polaris1119/golangweekly/issues
[3]Gorilla Toolkit 尋找新的維護(hù)者: https://github.com/gorilla/mux/issues/659
[4]Go1.18 中 interface{} 替換為 any: https://github.com/golang/go/commit/2580d0e08d5e9f979b943758d3c49877fb2324cb
[5]immudb 1.2 發(fā)布: https://github.com/codenotary/immudb
[6]go-mysql 1.4.0 發(fā)布: https://github.com/go-mysql-org/go-mysql
[7]Bleve 2.3.0 發(fā)布: https://github.com/blevesearch/bleve
[8]XLSX 3.2.4 發(fā)布: 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語言中文網(wǎng): 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
