Go有两种字符类型:uint8类型和rune类型。uint8类型即[]byte型,代表的是ACSII码的一个字符;
rune类型,则代表一个utf-8字符,当需要处理复合字符时,如中文时,就需要用到rune()类型,
rune 类型等价于 int32 类型。r := string(rune('a')),一般以这种方法进行转义。
案例:遍历a -> z并输出,以及输出A -> Z、Z -> A
按不同方式遍历并输出(刚学的时候,这个部分很绕,需要不断的练习)
package main
import (
"fmt"
)
//遍历a-z,输出,以及输出大写的Z-A
//
func main() {
for i := 0; i <26; i ++{
//‘a’ -> 代表[]byte,即uint8类型,
str := string(('a' + rune(i))-rune(32))
fmt.Printf(" %s ",str)
}
fmt.Println()
for j := 90; j > 64; j -- {
r := []rune(string(rune(j)))
for j := 0; j <len(r);j ++ {//遍历r
fmt.Printf(" %c ",r[j])
}
}
fmt.Println()
//通过创建byte数组,输出A -> Z ,然后再反转输出
var char [26]byte
var tmp byte
length := len(char)
for i := 0; i < length; i ++{
char[i] = 'A' + byte(i)
//fmt.Printf("%c",char[i])
}
fmt.Printf("%c",char)
println()
for j := 0; j < length / 2 ; j++ {
tmp = char[length - 1 - j]
char[length - 1 - j] = char[j]
char[j] = tmp
}
fmt.Printf("%c",char)
println()
}
输出的结果: