for
statement的初始化陈述是一个简单的陈述:
ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .
InitStmt = SimpleStmt .
PostStmt = SimpleStmt .
其中simple statement是:
SimpleStmt = EmptyStmt | ExpressionStmt | SendStmt | IncDecStmt | Assignment | ShortVarDecl .
您对short variable declaration个感兴趣,即:
ShortVarDecl = IdentifierList ":=" ExpressionList .
短变量声明允许多个标识符.
而且Post声明也是一个简单的声明,可以用assigment来增加多个变量,即:
Assignment = ExpressionList assign_op ExpressionList .
assign_op = [ add_op | mul_op ] "=" .
请注意,increment and decrement个操作是陈述,而不是运算符,因此您不能在单个Post陈述中使用多个操作,您必须使用像i, j = i+1, j-1
这样的二元组分配.
总而言之,这就是您可以做到的方法:
for i, j := 0, length-1; i < length/2; i, j = i+1, j-1 {
array[i], array[j] = array[j], array[i]
}