【笔记】学到几个 golang 代码小技巧

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更加优雅

myfunc()() 这样的函数调用

假设调用一个函数写成myfunc()(),第一反应是“会编译错误吧?”
只要第一层函数返回的值是一个函数就行:

func myfunc() func(){
return func(){
fmt.Println("xxx")
}
}

Go 1.20 允许将切片解析为数组或数组指针

// Go 1.20
func Test(t *testing.T) {
a := []int{0, 1, 2, 3, 4, 5}
b := [3]int(a[0:3])
fmt.Println(b) // [0 1 2]
}

Go 1.20 允许将多个错误合并为单个错误

var (
err1 = errors.New("Error 1st")
err2 = errors.New("Error 2nd")
)
func main() {
err := err1
err = errors.Join(err, err2)
fmt.Println(errors.Is(err, err1)) // true
fmt.Println(errors.Is(err, err2)) // true
}

特定的场景下,能够让错误处理更优雅一些。

posted on   ahfuzhang  阅读(51)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-11-30 【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示