用Go实现字符串的逆序

2022年01月14日 阅读数:3
这篇文章主要向大家介绍用Go实现字符串的逆序,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

本文使用Go来实现字符串逆序这个功能,用最简单的话术让你理解
附带在Go中debug的小技巧
例如:Hello 转换为 olleH学习

1、实现字符串的逆序

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

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

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)
}

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

在这副图中咱们能够看到第一次循环时是将第一字符串跟最后一个字符串进行调换调试

第二次循环时将第二个值跟倒数第二值进行调换
在这里插入图片描述
这就是这块代码的意义所在code

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

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

而后把第一个索引的字符串改成咱们第一步保存的值 同理 让第一个值等于最后一个值
在这里插入图片描述字符串

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

这种方式须要引入包strings,也是官方推荐的一种方式

func stringReverse1() {
   
	var str = "hello"
	var bytes []byte = []byte(str)
	var build strings.Builder
	for i := 0; i < len(bytes); i++ {
   
		i2 := bytes[len(bytes)-i-1]
		build.WriteString(string(i2))
	}
	s3 := build.String()
	fmt.Println(s3)
}

执行俩个代码,检测是否可行
在这里插入图片描述

2、给你一个小技巧让你在用Go的Debug时游刃有余

假设咱们想调试一下这几个值的时候,就会发现go会直接报出一个变量没有使用的错误。这种写法在PHP中是不存在报错的,这个错误就会致使go的程序编译没法经过
在这里插入图片描述
那么咱们应该如何模拟已经使用了这个值呢!

能够使用一个底杠来解决这个问题

这时就能够使用debug来调试了咱们想要得值了
在这里插入图片描述

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。但愿在诺大互联网中咔咔的文章能带给你一丝丝帮助。