Go实现基本的swap函数 Posted on 2018-09-23 问题 在C++中stl算法中提供了非常好用的swap函数,而Go中目前还没有。 虽然swap的函数很容易通过^实现,但是也要三行代码。 12345678// 示例,对字符串进行reverse操作,注意这里对[]rune(string)进行操作 func reverse(s []rune) { for l, r := 0, len(s) - 1; l < r; l, r = l + 1, r - 1{ s[l] ^= s[r] s[r] ^= s[l] s[l] ^= s[r] } } 解决方案 其实可以利用Go的语法特点,在一行中完成swap函数的功能,代码如下: 12345func reverse(s []rune) { for l, r := 0, len(s) - 1; l < r; l, r = l + 1, r - 1{ s[l], s[r] = s[r], s[l] } }