如图代码所示:
截取思路一: 把字符串转成字节数组,然后使用slice切片得到其中想要截取的一段
但是因为处理的字符串中可能还存在中文,而中文一般不止占一个字节,在go语言中一个中文一般占用3个字节,那么如果按照字节数组处理的话,还需要遍历每个字节,判断编码,判断ascii码,处理起来也就复杂了.
截图思路二:如果中文也只占用一个数组下标就好了,查看文档发现rune类型满足需求.
Go语言的字符有以下两种:
- 一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。
- 另一种是 rune 类型,代表一个 UTF-8 字符,当需要处理中文、日文或者其他复合字符时,则需要用到 rune 类型。rune 类型等价于 int32 类型。
因此这里我采用了rune类型,首先将参数str转为rune类型,再获取需要的片段,再转换为string类型,得到了需要替换的部分,再使用strings包中的替换函数ReplaceAll进行处理得到我们所需要的字符串.
另外记录下,string函数不能直接转换interface{}类型,不过可以使用如下语法:
name, ok := x.(T) 类型断言语法,检查x是否为T类型,是的话返回值给name.返回bool值给ok,当x为nil时或者未接收ok返回值时,断言失败都会直接panic
go语言中判断null值,使用的是nil
item["name"] = null