这里记录每周值得分享的 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
rsc 建议这样 delete(m)
清除 map。
这是今年二月份的提案:golang/go#51317,提供另一种分配内存的方法,可以减少内存管理开销。
构建跨平台的桌面应用。
一种新的 Protobuf 处理库。
基于 SQLite 分布式关系数据库。
全能型流量编排系统。国人开发。
本文整理自字节跳动高级工程师马春辉在 DIVE 全球基础软件创新大会 2022 的演讲分享,主题为“字节大规模微服务语言发展之路”。
依赖注入并不是java独有的,也不是web框架独有的,本文用通俗易懂的语言讲解什么是依赖注入,为什么需要依赖注入,以及go语言如何使用依赖注入来提升开发效率。
在这一篇文章中,我就和大家一起来学习和理解一下Go编译器的内联优化。
今天聊一个存储的实现细节,数据副本的并发写入。
JetBrains 下一代 IDE,本文针对 Go 开发者。
arena 包使用示例。
go-cache 是一个轻量级的基于内存的 K-V 储存组件,内部实现了一个线程安全的 map[string]interface{},适用于单机应用。
一个现代的 PHP app server。
2、pp
带颜色的漂亮打印包。
简单的 Web 流量分析程序。
4、retry-go
简单的重试机制包。
5、nbio
纯 Go 的 1000k+ 连接解决方案。
其中一篇 The Go WebAssembly ABI at a Low Level。
Go 101 各种抠细节。
3、油管视频
使用 Go 编写更快、更安全的应用。
新鲜出炉。
微信搜索"Go语言中文网"或者扫描二维码,即可订阅。