计算机内部是以二进制存储,0,1,1,0,0110 占据了4位空间。i32 和u32 大小是32位,u64和i64大小是64位。一个字节等于8位,换算一下,i32 和u32是4个字节,u64和i64是8个字节。
- 字符
let c = 'z';
let z = 'ℤ';
let g = '国';
Rust中字符类型占用 4 个字节,也就是32 位大小。
- String
Rust 中的字符是 Unicode 类型,因此每个字符占据 4 个字节内存空间,但是在字符串中不一样,字符串是 UTF-8 编码,也就是字符串中的字符所占的字节数是变化的(1 - 4),
# 字母和数字每个都占据一个字节,字符串越长占据空间越大
let a = "11111111" # 4个字节
let a : u32 = 11111111 # 4个字节
let b = "2222222222222222" # 16个字节
let b : u32 = 2222222222222222 # 4个字节
# 以Unicode 方式访问字符串
for c in "中国人".chars() {
println!("{}", c);
}
中
国
人
# 以u8底层数组的方式访问
for b in "中国人".bytes() {
println!("{}", b);
}
228
184
173
229
155
189
228
186
186