gpt4 book ai didi

string - Rust 中的 `str` 有什么用处吗?

转载 作者:行者123 更新时间:2023-12-04 14:35:17 25 4
gpt4 key购买 nike

是否有任何情况下会使用 str不借?这甚至有意义吗?
我了解 String 之间的区别和 &str ,但因为有 &str也必须有str ?

最佳答案

你不能用 str 类型的值做很多事情,但在很多情况下您会希望引用类型 str .

  • Box<str>Rc<str> - 拥有的类型,类似于 String ,但不能通过变异来增长或重新分配
  • 任何时候你想接受可以被视为字符串的任意类型,你可以使用像 T: Deref<Target = str> 这样的约束。 , T: AsRef<str>T: Borrow<str> .例如 HashMap::get具有以下签名:
    pub fn get<Q: ?Sized>(&self, k: &Q) -> Option<&V> where
    K: Borrow<Q>, // K is the key type for the HashMap
    Q: Hash + Eq,
    这意味着您可以拥有一个 HashMap<String, i32> ,但使用 &str 访问值键,例如map.get("key") .这里Q将被推断为 str ,但 k参数仍然是 &str ( &Q )。?Sized注释意味着 Q不需要在编译时知道大小,明确允许无大小的类型,如 str要使用的。
  • 关于string - Rust 中的 `str` 有什么用处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66801681/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com