我正在从C背景开始自学。下面的代码按照我的预期工作(前两个将访问字节,最后两个将访问代码点)。Printf()Printf()我不清楚的是,这是否涉及任何数据复制。package mainimport "fmt"var a stringfunc main() { a = "èe" fmt.Printf("%d\n", a[0]) fmt.Printf("%d\n", a[1]) fmt.Println("") fmt.Printf("%d\n", []rune(a)[0]) fmt.Printf("%d\n", []rune(a)[1])}换句话说:确实创建了一个符文数组,并用对应于 的符文填充它,或者只是编译器来弄清楚如何从字符串字节中获取符文?[]rune("string")"string"
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
如果不分配数组,就不可能将 []uint8(即字符串)转换为 []int32([]符文的别名)。
此外,字符串在 Go 中是不可变的,但切片是不可变的,因此转换为 []字节和 []rune 必须以某种方式复制字符串的字节。
- 2 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消