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编码值。
notion image
3、遍历字符串
  • 通过range方式的遍历,是以rune为单位,但是相邻字符的索引值并不一定是连续的;
  • 通过for方式的遍历,是以byte为单位。
 
4、类型转换
 

© 刘德华 2020 - 2023