Go基础-字符串
date
Apr 3, 2023
slug
gostring
status
Published
tags
Golang
summary
type
Post
1、基础概念
ASCII是由美国国家标准学会(ANSI)制定的单字节字符编码方案,它使用单个字节(byte)的二进制数来编码一个字符。
Unicode编码规范为世界上现存的所有自然语言中的每一个字符,都设定了一个唯一的二进制编码,但没有规定代码点怎么存储,所以才有UTF-8、UTF-16、UTF-32这几种不同的存储方式。
详细可参考Unicode 编码及 UTF-32, UTF-16 和 UTF-8
2、字符串编码
一个string类型的值在底层就是一个能够表达若干个UTF-8编码值的字节序列。
rune
是Go语言特有的一个基本数据类型,它的一个值就代表一个Unicode字符,比如'吕'、'M'。一个rune类型的值会由四个字节宽度的空间来存储,它的存储空间总是能够存下一个UTF-8编码值。3、遍历字符串
- 通过range方式的遍历,是以rune为单位,但是相邻字符的索引值并不一定是连续的;
- 通过for方式的遍历,是以byte为单位。
4、类型转换