go语言字符类型byte与rune案例详解

发布日期:2025-01-04 16:05    点击次数:140
golang的字符有如下两种: 一种是 uint8['ju:nɪt] 类型叫做 byte 型,代表了 ASCII 码的一个字符。另一种是 rune[ruːn] 类型,代表一个 UTF-8 字符,当需要处理中文、日文或者其他复合字符时,则需要用到 rune 类型。rune 类型等价于 int32 类型。 一、byte类型介绍 byte 类型是 uint8 的别名,可以表达只占用 1 个字节的传统 ASCII 编码的字符,例如 var c byte = 'A' 用单引号括起来的单个字符是字符类型,用双引号括起来的字符是字符串类型 二、rune类型介绍 在书写 Unicode 字符时,需要在 16 进制数之前加上前缀\u或者\U。Unicode 至少占用 2 个字节,所以我们使用 int16 或者 int 类型来表示。需要使用到 4 字节,则使用\u前缀,如果需要使用到 8 个字节,则使用\U前缀。 三、遍历含有中文(Unicode)时差异 3.1、遍历打印一个字符串,当使用byte类型时: 上面结果,英文字符正确打印,但中文乱码。是因为UTF8编码下一个中文汉字由3~4个字节组成,而字符串是由byte字节组成,所以长度也是byte字符长度,这样遍历时遇到中文就乱码了。 3.2、使用rune 类型来遍历字符串 在 Go 中,有一个遍历方式是 range,它默认就是以 UTF-8 编码形式去读每一个字符。当涉及到的字符串中含有非英文字符时,可以使用 range 来遍历: 此时输出的字节编码就是 UTF-8 编码号,UTF-8 编码是包含 ASCII 编码的,所以前 6 个编号还是一样的,后面两个编号分别代表世,界。 四、go 语言字符串修改 所谓对字符串的修改其实不是对字符串本身的修改,而是复制字符串,同时修改值,即重新分配来内存。 在go中修改字符串,需要先将字符串转化成数组,[]byte 或 []rune,然后再转换成 string型。 4.1、对于全是ASCII编码的字符串: 4.2、对于包含非ASCII编码的字符串: 参考文档 1、https://blog.csdn.net/AXIMI/article/details/1203792252、https://lesscode.work/sections/62b076e9d22ba.html3、https://www.liaoxuefeng.com/wiki/1016959663602400/10169598562226244、https://www.cnblogs.com/wjaaron/p/14822799.html5、https://www.bbsmax.com/A/D854aVKpdE/ 到此这篇关于go 语言字符类型 byte 与 rune案例详解的文章就介绍到这了,更多相关go 语言字符类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 您可能感兴趣的文章:Golang中String,rune和byte的相互转换golang中byte和rune用法及新手易错点总结

上一篇:云服务器ecs是甚么

下一篇:win11绿色版