加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang:带注释的代码行的惯例是什么?

发布时间:2020-12-16 09:26:24 所属栏目:大数据 来源:网络整理
导读:代码格式约定的Go模型是“gofmt是约定”.该惯例的一部分我很难理解,并且很好地定义哪个gofmt是一个实现,而不是必须从经验实例中推导出该模型.这是一个样本. 去fmt之前: func sieve(mine int,// This instance's own prime inch chan int,// Input channel f
代码格式约定的Go模型是“gofmt是约定”.该惯例的一部分我很难理解,并且很好地定义哪个gofmt是一个实现,而不是必须从经验实例中推导出该模型.这是一个样本.

去fmt之前:

func sieve(mine int,// This instance's own prime
           inch chan int,// Input channel from lower primes
           done chan int,// Channel for signalling shutdown
           count int) {               // Number of primes - counter
    start := true                     // First-number switch
    ouch := make(chan int)            // Output channel,this instance
    fmt.Printf("%v ",mine)           // Print this instance's prime

去fmt之后:

func sieve(mine int,// This instance's own prime
    inch chan int,// Input channel from lower primes
    done chan int,// Channel for signalling shutdown
    count int) { // Number of primes - counter
    start := true                                 // First-number switch
    ouch := make(chan int)                        // Output channel,mine)                       // Print this instance's prime

谁能帮我理解这里发生了什么?也就是说,为什么有些评论被不利地压缩,而其他评论则扩大了?一些理论:

>这太丑了,它必须意味着在同一行上没有注释的代码是首选
> gofmt中存在一个错误
>不完整(在某种程度上)行与完整行不同
>还有别的吗?

解决方法

通常,参数在函数/方法文档中描述.考虑 math/big.(*Int).Exp docs:

// Exp sets z = x**y mod |m| (i.e. the sign of m is ignored),and returns z.
// If y <= 0,the result is 1 mod |m|; if m == nil or m == 0,z = x**y.
// See Knuth,volume 2,section 4.6.3.
func (z *Int) Exp(x,y,m *Int) *Int {

主要评论解释了x,y和m是什么以及它们之间的关系. This是godoc的外观呈现方式.

对于代码来说,每行通常都有自己的注释行:

// First-number switch.
start := true
// Output channel,this instance.
ouch := make(chan int)
// Print this instance's prime.
fmt.Printf("%v ",mine)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读