用于Go编程语言的循环

时间:2014-07-12 19:56:02

标签: go

我正在编写一个使用Go来反转字符串的函数。

func main() {
        s := "abcde"
        r := []rune(s)
        for i, j := 0, len(s)-1; i < j; i, j = i++, j-- {
               r[i], r[j] = r[j], r[i]
        }
    fmt.Printf("%s\n", string(r))
}

然而,编译器对i, j = i++, j--的抱怨说, syntax error: unexpected ++, expecting {

如果我将其更改为i, j = i+1, j-1,此功能有效。 我不知道为什么不允许这样做。有人可以帮忙吗? 谢谢你。

1 个答案:

答案 0 :(得分:2)

在Go中,x--x++是语句,而不是表达式,所以你不能像那样分配它们,而且它是设计的。

Spec说:

  

一元运算符具有最高优先级。由于++和 - 运算符形成语句而不是表达式,因此它们不属于运算符层次结构。因此,语句* p ++与(* p)++。

相同