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

polaris · 2022-03-27 16:49:36 · 3102 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2022-03-27 16:49:36 的主题,其中的信息可能已经有所发展或是发生改变。

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

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

题图:Go 吉祥物,代表了简单!

刊首语

本期题目:以下代码输出什么?

func main() {
  var m sync.Mutex
  fmt.Print("A, ")
  m.Lock()

  go func() {
    time.Sleep(200 * time.Millisecond)
    m.Unlock()
  }()

  m.Lock()
  fmt.Print("B ")
}

A:A,B;B:A,C:A,fatal error;D:fatal error...

正确答案:A,即正常输出 A,B。该题正确率 34%。

在 main goroutine 第二次请求 Lock 时,会堵塞。这样另一个 goroutine 会运行,释放锁。如果没有另一个 goroutine 释放锁,则会报 fatal error,所有的 goroutine 都处于 sleep 状态,死锁!

本期题目:以下代码输出什么?

package main

import "fmt"

func main() {
    var a, b = 1.0, 2.0
    fmt.Println(a | b)
}

A:3;B:+Inf;C:true;D:编译错误

资讯

1、GoLand 2022.1 Beta 发布

支持 Go1.18,还有微服务。

2、chromedp 0.8 发布

Go 1.18 的支持。

3、bloom 3.2 发布

Go 的 Bloom filters 实现。

文章

1、Go 中类型转换的那些事

使用最多的 strconv 包。

2、在腾讯,Go首次超越C++成为最热门语言

Go 要起飞?

3、goutil/dump —— 打印漂亮且易于阅读的 Go 数据

一个 golang 数据打印工具包,可以打印漂亮易读的 go slice、map、struct 数据。

4、Go语言 JSON 与 Cache 库调研与选型

有这方面需求的可以看看。

5、如果你是一个Golang面试官,你会问哪些问题?

来自知乎。

开源项目

1、lotusdb

基于快速文件的键值存储库。

2、xid

全局唯一 ID 生成器,使用 MongoDB 对象 ID 的算法。

3、pie

操作 slice 和 map 的方便库。

资源&&工具

1、date-time-format-cheatsheet

Go 中日期和时间 cheatsheet。

2、leaktest

Goroutine 泄露检测。

3、Data-Structures-and-Algorithms

数据结构和算法的 Go 实现。

4、syft

一个 CLI 工具和 Go 库,用于从容器映像和文件系统生成软件物料清单(SBOM)。

订阅

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

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

wechat


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3102 次点击  
加入收藏 微博
1 回复  |  直到 2022-03-29 16:52:30
yuu2lee4
yuu2lee4 · #1 · 3年之前

image.png 这个代码部分不优化一下样式么

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传