rust char 类型字节大小不固定,这个我理解不了。
我理解一个类型的字节大小应该是固定的,i32 就是 4 个字节。
char 类型的大小应该也是固定的,怎么就不固定了呢?想不通啊。
![]() |
1
ahhui 136 天前
拿楼主的问题 Google 一搜,都说是固定的啊。rust 的 char 是 4 字节,存储 unicode 字符的。没看到“大小不固定”的说法。不过我不懂 rust ,仅仅 只是好奇搜了下,可能结果不准。等高人回答吧。
|
![]() |
2
yudoo 136 天前
它的大小取决于 Unicode 字符的编码范围和表示所需的字节数。
|
3
simen513 136 天前
它的字符串采用的是 UTF-8 编码,里面有一个字节代表一个字符的,比如 ASCII 编码中的字符,还有 2 个字节、4 个字节代表一个字符的,具体的看 UTF-8 编码的详情。
|
4
Leviathann 136 天前
utf 8 不定长
|
![]() |
5
gkinxin 136 天前
char 就是 4 个字节,你应该把字符串和 char 搞混了
|
![]() |
6
hronro 136 天前
char 类型表示单个字符。更具体地说,由于“字符”在 Unicode 中没有明确定义的概念,因此 char 是“Unicode 标量值”。
Unicode 标量值包括整数范围 0 到 D7FF16 和 E00016 到 10FFFF16 。 |
![]() |
7
vicence 48 天前
https://kaisery.github.io/trpl-zh-cn/ch03-02-data-types.html ,可以看下这页面的“字符类型”介绍
|