rune类型

Posted by Liao on 2023-02-24

使用场景

1、Go字符串不支持下标修改,需要转byte或者rune才能改。byte是uint8的别名,而rune是int32的别名

1
2
3
4
str := "hello"
str1 := []byte(str)
str1[0] = 'x'
fmt.Println(string(str1)) // xello

2、算法题:abcde你好 => 好你edcba

[]rune(s)可以将字符串转为unicode,输出中文

1
2
3
4
5
6
7
8
9
10
11
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(s)
}
func main() {
a := "好你gfedcba"
println(Reverse(a))
}