开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:字符类型注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9525
字符类型注意事项
内容介绍:
一、 字符类型使用细节
二、 字符类型本质探讨
一、 字符类型使用细节
1. 字符常量是用单引号(‘’)括起来的单个字符。
例如: var c1 byte = 'a'
var c2 int =‘中‘
var c3 byte = 'g'。
2. Go 中允许使用转义字符l'来将其后的字符转变为特殊字符型常量。例如: var c3 char = \n'l/ '\n'表示换行符。
3. Go 语言的字符使用 UTF-8编码。
http://www.mytju.com/classcode/tools/encode_utf8.asp
在此查询字符对应的 UTF-8码值。
英文字母-1个字节,汉字-3个字节。
4. 在 Go 中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8编码的码值。
(1)ASCLL 码 表示的特殊字符,字母
(2)unicode 码,兼容 ASCLL,同时扩展,可以表示更多的字符,缺点是不灵活,占用空间大。
(3)utf8编码在 unicode 基础上做优化,可以变长的编码方式来表示不同字符,这样可以节省空间。
5. 可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的 Unicode 字符。
Var n1 int = 38889
Fmt . Printf (
‘’
n1=%c
’’
, n1)
//输出 ‘韩’
案例演示:
var c4 int = 22269
// 22269 ->‘国’
fmt.Printf("c4=%c\n", c4)
输出为c4 = 国
6. 字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码。
Var char5 byte =
‘
a
’
Var n10 = char5 + 1// 98 n10【byte】
Fmt. Printf (
‘’
n10 类型=%T,值=%c, n10,n10,n10)//= =>97+1
案例演示:
var n1 = 10 + 'a’ //10 + 97 =107
fmt.Print1n("n1=", n1)
输出为n1 = 107
二、 字符类型本质探讨
1) 字符型存储到计算机中,需要将字符对应的码值(整数)找出来
a) 存储:字符--->对应码值---->二进制-->存储
b) 读取:二进制---->码值---->字符-->读取
2) 字符和码值的对应关系是通过字符编码表决定的(是规定好)
3) Go 语言的编码都统一成了 utf-8。
非常的方便,很统一,再也没有编码乱码的困扰了.