Go 字符类型的使用及细节
发布日期:2021-05-07 15:12:24 浏览次数:20 分类:原创文章

本文共 1348 字,大约阅读时间需要 4 分钟。

字符类型的使用及细节





  • 基本介绍

    • Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存。

    • 字符串就是一串固定长度的字符连接起来的字符序列

    • Go 的字符串是由单个字节连接起来的

      • 也就是说对于传统的字符串是由字符组成的,而 Go 的字符串不同,它是由字节组成的。



  • 案例:


var c1 byte = 'a'var c2 byte = '0'fmt.Println("c1 = ", c1 )fmt.Println("c2 = ", c2 )


  • 输出结果:




  • 解释:

    • 当我们直接输出byte值,就是输出了对应的字符的码值


  • 如果我们需要输出对应对应字符,需要使用格式化输出


var c1 byte = 'a' var c2 byte = '0' fmt.Printf("c1 = %c \n", c1 )fmt.Printf("c2 = %c", c2 )


  • 输出结果:




  • 对于汉字,超过byte范围


var c byte = '木'   //byte 0-255fmt.Printf("c = %c", c)


  • 报溢出




  • 改为int(int64)


var c int = '木'   fmt.Printf("c = %c\nc对应的码值%d", c, c)


  • 输出:




  • 对上面代码说明

    • 如果我们保存的字符在 ASCII 表比如[0-1, a-z,A-Z..]直接可以保存到 byte

    • 如果我们保存的字符对应码值大于 255这时我们可以考虑使用 int 类型保存

    • 如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmt.Printf(“%c”, c1)





字符类型使用细节



  • 字符常量是用单引号 '' 括起来的单个字符。

    • 例如:var c1 byte = 'a'     var c2 int = '中'       var c3 byte = '9'


  • Go 中允许使用转义字符 '\’来将其后的字符转变为特殊字符型常量。

    • 例如:var c3 byte = ‘\n’       // '\n'表示换行符


  • Go 语 言 的 字 符 使 用 UTF-8 编 码 , 如 果 想 查 询 字 符 对 应 的 utf8 码 值   


    • 英文字母 1 个字节  汉字3 个字节


  • Go 中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8 编码的码值。

  • 可以直接给某个变量赋一个数字,然后按格式化输出%c,会输出该数字对应的 unicode 字符


var c int = 22269 // 22269 -> '国'fmt.Printf("c = %c", c)


  • 输出:






  • 字符类型可以进行运算的,相当于一个整数,运算时按照码值运行


var c = 10 + 'a' // 'a' 码值:97fmt.Println("c =", c)


  • 输出结果:






  • 字符类型本质探讨

    • 字符本质是个整数

    • 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来

      • 存储:字符--->对应码值---->二进制-->存储

      • 读取:二进制----> 码值 ----> 字符 --> 读取


    • 字符和码值的对应关系是通过字符编码表决定的(是规定好)

    • Go 语言的编码都统一成了 utf-8。非常的方便,很统一,再也没有编码乱码的困扰了


上一篇:Go 布尔类型及使用
下一篇:Go 小数类型/浮点型的使用

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月21日 01时43分56秒