字符

  1. Unicode 标量值,其值对应于 Rust 中 u32 类型
  2. 占4个字节
  3. 可方便地转换为 utf8 编码字符序列

字符串

  1. UTF-8 字节序列,Vec<u8>
  2. str 和 String 两大常用字符串类型
  3. 其它字符串类型
    • CStr 和 CString
    • OsStr 和 OsString
    • Path 和 PathBuf

Trait std::str::pattern::Pattern

因为 Rust 没有内置的正则表达式,所以需要使用 Pattern Trait 来实现字符串的模式匹配。

pub trait Pattern<'a>: Sized {
    type Searcher: Searcher<'a>;

    // Required method
    fn into_searcher(self, haystack: &'a str) -> Self::Searcher;

    // Provided methods
    fn is_contained_in(self, haystack: &'a str) -> bool { ... }
    fn is_prefix_of(self, haystack: &'a str) -> bool { ... }
    fn is_suffix_of(self, haystack: &'a str) -> bool
       where Self::Searcher: ReverseSearcher<'a> { ... }
    fn strip_prefix_of(self, haystack: &'a str) -> Option<&'a str> { ... }
    fn strip_suffix_of(self, haystack: &'a str) -> Option<&'a str>
       where Self::Searcher: ReverseSearcher<'a> { ... }
}