Golang系列之字符类型基本介绍
Golang没有专门的字符类型,如果要存放单个字符,一般采用关键字byte
或者是rune
,本文主要挑byte
来讲,然后go的字符和java中的字符是一样的?在java中字符串是用字符拼接成的字符序列,而golang中字符串不是由字符构成的,是由字节构成的
byte:代表 UTF-8 编码中单个字节的值,是 uint8 类型的别名,占用一个字节
rune:代表单个 Unicode 字符,是 int32 类型的别名,占用4个字节
类型 | 有无符号 | 占用存储空间大小 | 范围 | 备注 |
---|---|---|---|---|
byte | 无 | 与uint8一样,1个字节 | 0 ~ 255 | 当要存储字符时选用byte |
var c byte = 'a'
// 打印 , c=97,对应的utf-8编码值unicode,是不是和ASCII一样?
fmt.Println("c=" , c)
var c byte ='a'
// 打印, c=a
fmt.Ptinf("c=%c \n" , c).
// 给出具体unicode编码,打印字符
var n int = 21271
// 打印, n=北
fmt.printf("n=%c \n" , n)
//var c byte = '北'
var c int = '北'
// 超过255会报错,应该将byte改为int
fmt.printf("c=%c \n" ,c)
var n = 10+ 'a'
// n=107
fmt.Println("n=" , n)
ASCII编码和UTF-8编码对比,ASCII编码包含了 33 个控制字符和 95 个可显示字符,可以理解为UTF-8编码是兼容ASCII编码的,UTF-8编码里包括了ASCII编码的字符编码,还进行了拓展,以适应国际化的发展
在go语言中,字符存储原理:
存储:字符->对应编码unicode->二进制
读取:二进制->unicode编码->字符
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://smilenicky.blog.csdn.net/article/details/122639280
内容来源于网络,如有侵权,请联系作者删除!