Go语言中的byte和rune区别、对比
时间:2022-07-23
本文章向大家介绍Go语言中的byte和rune区别、对比,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Go
语言中byte
和rune
实质上就是uint8
和int32
类型。byte
用来强调数据是raw data
,而不是数字;而rune
用来表示Unicode
的code point
。参考规范:
uint8 the set of all unsigned 8-bit integers (0 to 255)
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
byte alias for uint8
rune alias for int32
可以通过下面程序验证:
package main
import "fmt"
func byteSlice(b []byte) []byte {
return b
}
func runeSlice(r []rune) []rune {
return r
}
func main() {
b := []byte{0, 1}
u8 := []uint8{2, 3}
fmt.Printf("%T %T n", b, u8)
fmt.Println(byteSlice(b))
fmt.Println(byteSlice(u8))
r := []rune{4, 5}
i32 := []int32{6, 7}
fmt.Printf("%T %T n", r, i32)
fmt.Println(runeSlice(r))
fmt.Println(runeSlice(i32))
}
执行结果如下:
[]uint8 []uint8
[0 1]
[2 3]
[]int32 []int32
[4 5]
[6 7]
package main
import (
"fmt"
)
func main() {
var indexRuneTests = []struct {
s string
rune rune
out int
}{
//string用反引号能换行, 但不支持转义, rune是一个uint32,即一个unicode字符
{`asn
df`, 'A', 2},
//用双引号不能换行, 但支持转义如"nt..", rune是一个uint32,即一个unicode字符
{"some_textn=some_value", '=', 9},
{"☺a", '☺', 3},
{"a☻☺b", '☺', 4},
}
fmt.Println("Hello, playground",indexRuneTests)
}
Hello, playground [{asn
df 65 2} {some_text
=some_value 61 9} {☺a 9786 3} {a☻☺b 9786 4}]
参考资料: Difference between []uint8 && []byte (Golang Slices)。
- 维吉尼亚密码及程序实现
- 迪菲-赫尔曼密钥交换
- 分布式系统组件之配置中心
- github 提交报403 forbidden的错误解决
- Apache thrift - 使用,内部实现及构建一个可扩展的RPC框架
- redis主从集群搭建及容灾部署(哨兵sentinel)
- 浅谈ASP.NET的Postback
- redis配置详解(中英文)
- 我所理解的Remoting(1):Marshaling & Activation[下篇]
- 5分钟短视频,带你走进日志易SPL,助你日志分析更容易
- Unity Application Block 1.2 for Silverlight - December 2008
- 算法学堂 - 二分查找及其变形
- Zookeeper权限管理与Quota管理
- 刘鹏:保大还是保小?无人汽车也将面临这样的道德窘境
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法