package main
func main() {
//1. 定义字符 字符属于int类型
// var a = 'a'
// fmt.Println(a) //97 ASCII码
//当我们直接输出 byte(字符)的时候输出的是这个字符对应的ASCII码值
//2. 原样输出字符
// var a = 'a'
// fmt.Printf("%c", a) //a
//3. 定义一个字符串输出字符串里面的字符
// var str = "this"
// fmt.Printf("%v %c %T", str[2], str[2], str[2]) //105 i uint8
//4. 一个汉字占用3字节 一个字母占用1字节
// unsafe.Sizeof() 没法查看string类型所占的存储空间
// var str = "this" //占用四个字节
// fmt.Println(len(str)) //4
// var str = "你好GO"
// fmt.Println(len(str)) //8
//5. 定义一个字符 字符的值是汉字
//golang中汉字使用的是utf8编码 编码后的值就是int类型
// var a = '国'
// fmt.Printf("%v %T", a, a) //22269 int32
//6.通过循环输出字符串里面的字符
// str := "Golang"
// for i := 0; i < len(str); i++ { //byte类型 输出utf8编码会有问题
// fmt.Printf("%v---(%c)", str[i], str[i]) //71---(G)111---(o)108---(l)97---(a)110---(n)103---(g)
// }
// str := "你好 golang"
// for _, v := range str { //rune类型 强大 兼容ASCII UTF8
// fmt.Printf("%v--%c", v, v) //20320--你22909--好32-- 103--g111--o108--l97--a110--n103--g
// }
//7. 修改字符串
// s1 := "big"
// //强制类型转换 如果有汉字不可以用byte类型
// byteStr := []byte(s1)
// byteStr[0] = 'p'
// fmt.Println(string(byteStr)) //pig
// s1 := "你好golang"
// runeStr := []rune(s1)
// runeStr[0] = '大'
// fmt.Println(string(runeStr)) //大好golang
}
Last modification:April 10th, 2021 at 10:57 am
© The copyright belongs to the author