rust-|rust- 标准库 char

今天重新学习一下官方文档关于 char的部分: https://doc.rust-lang.org/std/char/index.html
0x01 char的内存占用长度 在rust中, 一个char 占用4个字节, 可以通过下面的代码来验证:
let v = vec!['h', 'e', 'l', 'l', 'o']; println!("{}", v.len()); println!("{}", v.len() * std::mem::size_of::()); ---- 5 20

同时, 如果我们想知道char在utf中实际长度是多少呢?可以如下方法获得:
println!("{}", 'A'.len_utf8()); println!("{}", '?'.len_utf8()); println!("{}", '?'.len_utf8()); println!("{}", ''.len_utf8()); ---- 1 2 3 4

0x02 chars字符长度 可以看到"abc".len() 方法执行结果是返回字节长度,
pub const fn len(&self) -> usize { self.as_bytes().len() }

【rust-|rust- 标准库 char】但更多时候,我们希望拿到它的unicode字符个数.
应该如何实现呢?
let cc = "love: ?"; println!("{}", &cc); println!("byte len: {}", &cc.len()); println!("char count : {}", &cc.chars().count()); ---- love: ? byte len: 9 char count : 7

    推荐阅读