go - Effective Go if 语句详解

标签 go godoc

我正在阅读 effective go页面,我遇到了以下内容。

Finally, Go has no comma operator and ++ and -- are statements not expressions. Thus if you want to run multiple variables in a for you should use parallel assignment (although that precludes ++ and --).

// Reverse a
for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {
    a[i], a[j] = a[j], a[i]
}

如果有人能解释和分解这个 for 循环中发生的事情,那将非常有帮助。

我理解 i, j := 0 声明了变量 i 和 j,但为什么有一个逗号后面跟着 len(a)-1。我不理解该部分以及条件中的其他部分。

谢谢你:)

最佳答案

i 被赋予初始值 0,j 被赋予 len(a)-1。对于每个循环迭代,i 将递增,j 将递减 1,同时从两端索引数组,并交换它们的值。

这个例子使用了 Go 的 ability to assign the values of multiple expressions to multiple Lvalues .

关于go - Effective Go if 语句详解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40274459/

相关文章:

找不到 godoc 命令

go - 如何在一些流行的 go repo 上运行 godoc?

go - 如何使用 godoc 创建文档?

go - Go 中 bigint.pow(a) 的等价物是什么?

json - 创建动态json

go - crypto/sha1 不匹配 openssl 命令

go - 无法在golang中使用公钥加密

go - 在导出名称中排除 godocs 是一种不好的形式吗?

go - 将CreationTimeStamp类型转换为字符串

go - 如何在函数中修改 GORM DB 指针?