本文使用Go来实现字符串逆序这个功能,用最简单的话术让你理解

附带在Go中debug的小技巧

例如:Hello 转换为 olleH

一、实现字符串的逆序

在go中,字符串要根据索引获取值是需要转为字节的。接下来我们看一个实现代码

代码应该都看的明白,下面咔咔用图解来帮助解释一下

package main

import (
"fmt"
)

func stringReverse() {
var str = "Hello"
// 字符串转字节
var bytes []byte = []byte(str)
for i := 0; i < len(str)/2; i++ {
// 定义一个变量存放从后往前的值
tmp := bytes[len(str)-i-1]
// 从后往前的值跟从前往后的值调换
bytes[len(str)-i-1] = bytes[i]
// 从前往后的值跟从后往前的值进行调换
bytes[i] = tmp
}
str = string(bytes)
fmt.Println(str)
}

这段代码可以看到循环的最大次数就是将字符串的长度除了2

在这副图中我们可以看到第一次循环时是将第一字符串跟最后一个字符串进行调换

第二次循环时将第二个值跟倒数第二值进行调换001.png

这就是这块代码的意义所在

先将索引最后的字符串的值拿出来

接着让最后索引的字符串跟第一个索引字符串相等 也就是上图中第一个步骤 让最后一个值跟等于第一个值

然后把第一个索引的字符串改为我们第一步保存的值 同理 让第一个值等于最后一个值

3bbc00bb0bf594c8b2f0da828a47d0e.png

在go中还有好几种实现这个过程,这里咔咔在提供一种供大家参考

这种方式需要引入包strings,也是官方

用Go实现字符串的逆序