golang编码规范

本文档详细列举了Go语言编码过程中的规范和建议,包括使用goimports替代gofmt,注释规范,如何正确使用context.Context,声明空slice的方式,随机数生成,错误处理,错误信息格式,goroutine管理,导入包的规则,多返回值的使用,命名约定,接口设计原则,以及测试和并发编程的最佳实践等。
摘要由CSDN通过智能技术生成

原文链接:https://github.com/golang/go/wiki/CodeReviewComments
1)用 goimport 代替 gofmt
2) https://golang.org/doc/effective_go.html#commentary
注释单独一行,开始于描述的名字,结束于。。没看明白
3)context.Context的值包含:跨API和流程边界的安全凭证,跟踪信息,截止日期和取消信号。
大多数函数用Context应该作为第一个参数接收
从不特别请求的函数可以使用context.Background(), 即使不要,也要在传递Context时使用err
默认情况是传递Context;如果你有充分的理由认为替代方案是错误的,那么只能直接使用context.Background()。
不要把Context添加到结构体中,而是把它作为参数加在每个这个类型的方法里面,一个例外是签名必须与标准库或第三方库中的接口匹配的方法。
不要在函数签名中自定义类型或者使用其他接口而不是Context
如果要传递应用程序数据,请将其放在参数中,接收器中,全局变量中,或者如果它真正属于那里,则放在Context值中。
Context是不变的,所以传相同的值没关系
4)如果一个类型的方法都与它的指针有关,就不要直接复制它的值
5)声明空slice:
var t []string : OK 空的slice
t := []string{} : NO 非空长度为0的slice

但是有些情况下,第二个好点,比如编码JSON对象(nil->null, []string->arra

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值