Golang for循环与2个变量等效?

我试图在 doc 中理解 golang 的语法,但有些事情即使他们解释也很难理解。


例如:


func Reverse(s string) string {

   r := []rune(s)

   for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {

    r[i], r[j] = r[j], r[i]

   }

   return string(r)

}

我把它翻译成原始代码:


func reverseString2(str string) string {

    var array = []rune(str)

    for i := 0; i < len(str)/2; i++ {

        for j := len(str) - 1; ???? ; j-- {

          // ---

        }

    }

    return string(array)

}

我的问题是,在第一个for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1中,j 似乎没有条件,所以在我的代码中我不知道如何解决它。


aluckdog
浏览 84回答 1
1回答

波斯汪

这是另一种更容易阅读并导致相同结果的方式。唯一的区别是变量的范围j变得不同了。func Reverse(s string) string {&nbsp; &nbsp; &nbsp; r := []rune(s)&nbsp; &nbsp; &nbsp; j := len(r) - 1&nbsp; &nbsp; &nbsp; for i := 0; i < len(r)/2; i++ {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[i], r[j] = r[j], r[i]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; j--&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; return string(r)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go