Skip to content
On this page

Go语言爱好者周刊:第 164 期 ​

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。

鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

题图:无题

刊首语 ​

上期是一道关于 map 的题目。以下代码输出什么?

go
package main

import "fmt"

func main() {
    var m map[string]int
    delete(m, "oh noes!")
    fmt.Println(m)
}

A:map[];B:nil;C:Panic;D:编译错误

正确答案是 A。正确率只有 21%,你答对了吗?

在 delete 函数的文档有说明:

bash
The delete built-in function deletes the element with the specified key (m[key]) from the map. If m is nil or there is no such element, delete is a no-op.

因此 delete 啥也没做。

本期继续看一道关于 map 的题目。以下代码输出什么?

go
package main

import "fmt"

func main() {
    pairs := [][2]string{
        {"a", "apple"},
        {"a", "ant"},
        {"b", "bee"},
    }

    m := map[string]string{
        pairs[0][0]: pairs[0][1],
        pairs[1][0]: pairs[1][1],
        pairs[2][0]: pairs[2][1],
    }
    fmt.Println(m["a"])
}

A:编译错误;B:apple;C:ant;D:panic

资讯 ​

1、提议:增加清除 map 的方法

rsc 建议这样 delete(m) 清除 map。

2、实验性支持 arena 包

这是今年二月份的提案:https://github.com/golang/go/issues/51317,提供另一种分配内存的方法,可以减少内存管理开销。

3、Wails 2.1 发布

构建跨平台的桌面应用。

4、buf 1.9 发布

一种新的 Protobuf 处理库。

5、rqlite v7.8.0 发布

基于 SQLite 分布式关系数据库。

6、easegress 2.2 发布

全能型流量编排系统。国人开发。

文章 ​

1、字节大规模微服务 Go 语言发展之路

本文整理自字节跳动高级工程师马春辉在 DIVE 全球基础软件创新大会 2022 的演讲分享,主题为“字节大规模微服务语言发展之路”。

2、Golang依赖注入提升开发效率!

依赖注入并不是java独有的,也不是web框架独有的,本文用通俗易懂的语言讲解什么是依赖注入,为什么需要依赖注入,以及go语言如何使用依赖注入来提升开发效率。

3、一文搞懂Go内联优化

在这一篇文章中,我就和大家一起来学习和理解一下Go编译器的内联优化。

4、Go 的 IO 流怎么并发?小技巧分享

今天聊一个存储的实现细节,数据副本的并发写入。

5、Fleet 特性预览

JetBrains 下一代 IDE,本文针对 Go 开发者。

6、还咋优化?我是说Go程序

arena 包使用示例。

7、Go 每日一库之 go-cache 缓存

go-cache 是一个轻量级的基于内存的 K-V 储存组件,内部实现了一个线程安全的 map[string]interface{},适用于单机应用。

开源项目 ​

1、frankenphp

一个现代的 PHP app server。

2、pp

带颜色的漂亮打印包。

3、goatcounter

简单的 Web 流量分析程序。

4、retry-go

简单的重试机制包。

5、nbio

纯 Go 的 1000k+ 连接解决方案。

资源&&工具 ​

1、GoLab 2022 talk

其中一篇 The Go WebAssembly ABI at a Low Level。

2、文档中找不到的Go 1.18和1.19版本的变化

Go 101 各种抠细节。

3、油管视频

使用 Go 编写更快、更安全的应用。

4、GopherCon 2022 技术大会 slides

新鲜出炉。

订阅 ​

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

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

wechat

Released under the MIT License.