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

输出的结果: