rust- 标准库 char

作者: 国服最坑开发 | 来源:发表于2020-04-30 14:54 被阅读0次

    今天重新学习一下官方文档关于 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::<char>());
    ----
    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()
        }
    

    但更多时候,我们希望拿到它的unicode字符个数.
    应该如何实现呢?

        let cc = "love: ❤";
        println!("{}", &cc);
        println!("byte len   : {}", &cc.len());
        println!("char count : {}", &cc.chars().count());
    ----
    love: ❤
    byte len   : 9
    char count : 7
    

    相关文章

      网友评论

        本文标题:rust- 标准库 char

        本文链接:https://www.haomeiwen.com/subject/oybzwhtx.html