Skip to content

Latest commit

 

History

History
166 lines (94 loc) · 5.06 KB

issue-164.md

File metadata and controls

166 lines (94 loc) · 5.06 KB

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

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

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

题图:无题

刊首语

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

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 函数的文档有说明:

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 的题目。以下代码输出什么?

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 包

这是今年二月份的提案:golang/go#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