我正在阅读 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/