看来大家对 append、slice 掌握还不到位

2022年6月15日 305点热度 0人点赞 0条评论

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

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

由于微信公众号不支持外链,文中大量链接可通过文末「阅读原文」查看。

图片

题图:Go 在 GitHub 上超过了 100000 颗星星,值得庆祝这一里程碑!

刊首语

上期的题目,真的惨不忍睹!

以下代码输出什么?

package main

import (
 "fmt"
)

func main() {
 var nums1 []interface{}
 nums2 := []int{134}
 nums3 := append(nums1, nums2...)
 fmt.Println(len(nums3))
}

A:3;B:1;C:4;D:编译失败

正确答案是 D,编译失败,只有 15% 的人做对了。看到错误信息应该知晓为什么了:

cannot use nums2 (variable of type []int) as type []interface{} in argument to append

看下本期的题目。以下代码输出什么?

package main

import (
 "fmt"
)

func main() {
 m := [...]int{
  'a'1,
  'b'2,
  'c'3,
 }
 m['a'] = 3
 fmt.Println(len(m))
}

资讯

1、Go1.19 Beta1 发布[3]

这是基本完成了的 Release Notes。

2、fyne 2.2.0 发布[4]

基于 Material Design 的 Go 跨平台 GUI。

3、HugoConf 大会[5]

会议在 7 月 8、9 两天进行,在线免费会议。

4、ddosify 0.8 发布[6]

Go 实现的高性能压测工具。

5、SFTPGo 2.3.0 发布[7]

Go 实现的功能齐全的 SFTP 服务器。

6、regexp 性能提升[8]

在 Go1.19 中体现。

文章

1、提高效率的 5 个 GoLand 快捷键,你都知道吗?

分享一些预定义的按键映射供您选择,并介绍几个必备快捷键用法。只需要记住这 5 个基本的快捷键操作,就能有事半功倍的效果。

2、PHP 跌出前 10,Go 机会来了?6 月 TIOBE 榜单

TIOBE 出炉了 2022 年 6 月份的编程语言趋势榜单。

3、使用BPF, 将Go网络程序的吞吐提升8倍[9]

经典的bpf(classical Berkeley Packet Filter) 是非常好用的一个技术,在一些特殊的Go底层网络编程的场合,可以很好的提高性能。

4、Go 官方调查变频繁了:6 月份开启新的调查,参与下吧

Go 不断提升。

5、Gopher 应该记住这 10 个命令

Go 最近真的起飞了。越来越多的公司采用它,开发人员也普遍接受它,因为它易于学习,功能强大。

开源项目

1、mo[10]

一个为函数式编程爱好者准备的,基于泛型构建。

2、garr[11]

高性能、线程安全、无锁的 Go 数据结构。

3、SyMon[12]

简单的系统监控和报警系统。

4、gofound[13]

go语言全文检索引擎,毫秒级查询。

资源&&工具

1、benthos[14]

流处理。

2、gta[15]

通过传递分析快速找到依赖关系发生变化的包。

3、durationlint[16]

专门针对 time.Duration 的 lint。

4、rain[17]

一个 BitTorrent 客户端。

5、Kratos[18]

云原生身份和用户管理系统

订阅

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

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

图片

wechat

参考资料

[1]

polaris1119/golangweekly: https://github.com/polaris1119/golangweekly

[2]

提交 issue: https://github.com/polaris1119/golangweekly/issues

[3]

Go1.19 Beta1 发布: https://tip.golang.org/doc/go1.19

[4]

fyne 2.2.0 发布: https://github.com/fyne-io/fyne

[5]

HugoConf 大会: https://hugoconf.io/

[6]

ddosify 0.8 发布: https://github.com/ddosify/ddosify

[7]

SFTPGo 2.3.0 发布: https://github.com/drakkan/sftpgo

[8]

regexp 性能提升: https://github.com/golang/go/commit/0293c51bc5d8ca0728913c4b7f9f92339f8fd9a6

[9]

使用BPF, 将Go网络程序的吞吐提升8倍: https://colobu.com/2022/06/05/use-bpf-to-make-the-go-network-program-8x-faster/

[10]

mo: https://github.com/samber/mo

[11]

garr: https://github.com/line/garr

[12]

SyMon: https://github.com/dhamith93/SyMon

[13]

gofound: https://github.com/newpanjing/gofound

[14]

benthos: https://github.com/benthosdev/benthos

[15]

gta: https://github.com/digitalocean/gta

[16]

durationlint: https://github.com/vigliag/durationlint

[17]

rain: https://github.com/cenkalti/rain

[18]

Kratos: https://github.com/ory/kratos

[19]

Go语言中文网: https://studygolang.com/go/weekly

[20]

微信公众号: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91

46520看来大家对 append、slice 掌握还不到位

这个人很懒,什么都没留下

文章评论